From fae83c43c105bb51326ab9d1464df9b912447b48 Mon Sep 17 00:00:00 2001 From: Fergus Noble Date: Wed, 25 Jan 2012 22:05:09 -0800 Subject: Discard .ARM.exidx section to make newlib 64bit (long long) printf support work. This may need to be fixed if using C++. --- lib/lm3s/libopencm3_lm3s.ld | 5 +++++ lib/lpc13xx/libopencm3_lpc13xx.ld | 5 +++++ lib/stm32/f1/libopencm3_stm32f1.ld | 5 +++++ lib/stm32/f2/libopencm3_stm32f2.ld | 5 +++++ lib/stm32/f4/libopencm3_stm32f4.ld | 5 +++++ 5 files changed, 25 insertions(+) diff --git a/lib/lm3s/libopencm3_lm3s.ld b/lib/lm3s/libopencm3_lm3s.ld index ebb79df..67dd7ba 100644 --- a/lib/lm3s/libopencm3_lm3s.ld +++ b/lib/lm3s/libopencm3_lm3s.ld @@ -55,6 +55,11 @@ SECTIONS * You may need to fix this if you're using C++. */ /DISCARD/ : { *(.eh_frame) } + /* + * Another section used by C++ stuff, appears when using newlib with 64bit + * (long long) printf support - discard it for now. + */ + /DISCARD/ : { *(.ARM.exidx) } end = .; } diff --git a/lib/lpc13xx/libopencm3_lpc13xx.ld b/lib/lpc13xx/libopencm3_lpc13xx.ld index f10246d..ec8c545 100644 --- a/lib/lpc13xx/libopencm3_lpc13xx.ld +++ b/lib/lpc13xx/libopencm3_lpc13xx.ld @@ -55,6 +55,11 @@ SECTIONS * You may need to fix this if you're using C++. */ /DISCARD/ : { *(.eh_frame) } + /* + * Another section used by C++ stuff, appears when using newlib with 64bit + * (long long) printf support - discard it for now. + */ + /DISCARD/ : { *(.ARM.exidx) } end = .; } diff --git a/lib/stm32/f1/libopencm3_stm32f1.ld b/lib/stm32/f1/libopencm3_stm32f1.ld index 57ca309..76c5e60 100644 --- a/lib/stm32/f1/libopencm3_stm32f1.ld +++ b/lib/stm32/f1/libopencm3_stm32f1.ld @@ -59,6 +59,11 @@ SECTIONS * You may need to fix this if you're using C++. */ /DISCARD/ : { *(.eh_frame) } + /* + * Another section used by C++ stuff, appears when using newlib with 64bit + * (long long) printf support - discard it for now. + */ + /DISCARD/ : { *(.ARM.exidx) } . = ALIGN(4); end = .; diff --git a/lib/stm32/f2/libopencm3_stm32f2.ld b/lib/stm32/f2/libopencm3_stm32f2.ld index 57ca309..76c5e60 100644 --- a/lib/stm32/f2/libopencm3_stm32f2.ld +++ b/lib/stm32/f2/libopencm3_stm32f2.ld @@ -59,6 +59,11 @@ SECTIONS * You may need to fix this if you're using C++. */ /DISCARD/ : { *(.eh_frame) } + /* + * Another section used by C++ stuff, appears when using newlib with 64bit + * (long long) printf support - discard it for now. + */ + /DISCARD/ : { *(.ARM.exidx) } . = ALIGN(4); end = .; diff --git a/lib/stm32/f4/libopencm3_stm32f4.ld b/lib/stm32/f4/libopencm3_stm32f4.ld index 57ca309..76c5e60 100644 --- a/lib/stm32/f4/libopencm3_stm32f4.ld +++ b/lib/stm32/f4/libopencm3_stm32f4.ld @@ -59,6 +59,11 @@ SECTIONS * You may need to fix this if you're using C++. */ /DISCARD/ : { *(.eh_frame) } + /* + * Another section used by C++ stuff, appears when using newlib with 64bit + * (long long) printf support - discard it for now. + */ + /DISCARD/ : { *(.ARM.exidx) } . = ALIGN(4); end = .; -- cgit v1.2.3