summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2009-02-11 16:20:10 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2009-02-11 16:20:10 +0000
commit9c266d2d820aa02579f1ae521d4435ecbbd2d1cd (patch)
treeffec4411f5d6d436de42ece84efdce1839c4a037 /c
parent2009-02-11 Ralf Corsépius <ralf.corsepius@rtems.org> (diff)
downloadrtems-9c266d2d820aa02579f1ae521d4435ecbbd2d1cd.tar.bz2
2009-02-11 Till Straumann <strauman@slac.stanford.edu>
PR 1369/bsps * Makefile.am, configure.ac: Fix name clashes when using MC68040 fpsp floating-point emulation.
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libcpu/m68k/ChangeLog6
-rw-r--r--c/src/lib/libcpu/m68k/Makefile.am17
-rw-r--r--c/src/lib/libcpu/m68k/configure.ac2
3 files changed, 22 insertions, 3 deletions
diff --git a/c/src/lib/libcpu/m68k/ChangeLog b/c/src/lib/libcpu/m68k/ChangeLog
index d3c0d6998a..66242d3c95 100644
--- a/c/src/lib/libcpu/m68k/ChangeLog
+++ b/c/src/lib/libcpu/m68k/ChangeLog
@@ -1,3 +1,9 @@
+2009-02-11 Till Straumann <strauman@slac.stanford.edu>
+
+ PR 1369/bsps
+ * Makefile.am, configure.ac: Fix name clashes when using MC68040 fpsp
+ floating-point emulation.
+
2008-09-08 Joel Sherrill <joel.sherrill@OARcorp.com>
* mcf548x/include/Freescale_license.txt: Convert to UNIX CR/LF style,
diff --git a/c/src/lib/libcpu/m68k/Makefile.am b/c/src/lib/libcpu/m68k/Makefile.am
index cbdcd7e919..a1197fb187 100644
--- a/c/src/lib/libcpu/m68k/Makefile.am
+++ b/c/src/lib/libcpu/m68k/Makefile.am
@@ -40,7 +40,8 @@ endif
if m68040
## m68040/fpsp
noinst_PROGRAMS += m68040/fpsp.rel
-m68040_fpsp_rel_SOURCES = m68040/fpsp/rtems_fpsp.c m68040/fpsp/bindec.S \
+noinst_PROGRAMS += m68040/fpsp_tmp.rel
+m68040_fpsp_tmp_rel_SOURCES = m68040/fpsp/rtems_fpsp.c m68040/fpsp/bindec.S \
m68040/fpsp/binstr.S m68040/fpsp/bugfix.S m68040/fpsp/decbin.S \
m68040/fpsp/do_func.S m68040/fpsp/gen_except.S m68040/fpsp/get_op.S \
m68040/fpsp/kernel_ex.S m68040/fpsp/res_func.S m68040/fpsp/round.S \
@@ -55,8 +56,18 @@ m68040_fpsp_rel_SOURCES = m68040/fpsp/rtems_fpsp.c m68040/fpsp/bindec.S \
m68040/fpsp/x_operr.S m68040/fpsp/x_ovfl.S m68040/fpsp/x_snan.S \
m68040/fpsp/x_store.S m68040/fpsp/x_unfl.S m68040/fpsp/x_unimp.S \
m68040/fpsp/x_unsupp.S
-m68040_fpsp_rel_CPPFLAGS = $(AM_CPPFLAGS)
-m68040_fpsp_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
+m68040_fpsp_tmp_rel_CPPFLAGS = $(AM_CPPFLAGS)
+m68040_fpsp_tmp_rel_LDFLAGS = $(RTEMS_RELLDFLAGS)
+
+# avoid name clashes and modifying the source by
+# prefixing all (global) symbols in the binary
+m68040/fpsp_tmp1.rel: m68040/fpsp_tmp.rel
+ $(OBJCOPY) --prefix-symbols __fpsp_ $^ $@
+
+# Then remove the prefix again on all global
+# symbols we really need:
+m68040/fpsp.rel: m68040/fpsp_tmp1.rel
+ $(OBJCOPY) --redefine-sym __fpsp_M68KFPSPInstallExceptionHandlers=M68KFPSPInstallExceptionHandlers --redefine-sym __fpsp_M68040FPSPUserExceptionHandlers=M68040FPSPUserExceptionHandlers --redefine-sym __fpsp__CPU_ISR_install_raw_handler=_CPU_ISR_install_raw_handler --redefine-sym __fpsp__FPSP_install_raw_handler=_FPSP_install_raw_handler $^ $@
noinst_HEADERS = m68040/fpsp/fpsp.defs
endif
diff --git a/c/src/lib/libcpu/m68k/configure.ac b/c/src/lib/libcpu/m68k/configure.ac
index 30279471ca..69490b0bbd 100644
--- a/c/src/lib/libcpu/m68k/configure.ac
+++ b/c/src/lib/libcpu/m68k/configure.ac
@@ -21,6 +21,8 @@ AM_PROG_CC_C_O
RTEMS_CANONICALIZE_TOOLS
RTEMS_PROG_CCAS
+RTEMS_CHECK_TOOL([OBJCOPY],[objcopy])
+
# At this time all models should use the shared directory so do this
AM_CONDITIONAL(shared, true)