Building linuxcnc 2.6 (git) with gcc 4.7.x on recent Debian x86_64 results in unresolved 'sincos' symbol in various kernel modules.
The compiler replaces consecutive sin/cos calls by sincos calls automagically. This patch adds -fno-builtin-sincos -fno-builtin-sin -fno-builtin-cos to discourage the compiler from replacing sin/cos calls. Signed-off-by: Michael Buesch <m...@bues.ch> --- Adding EXPORT_SYMBOL to the sincos from posemath does not solve the issue. It results in a kernel panic, when the sincos is called. I guess there's a difference in the call ABI. I did not investigate on this further. I think we should add explicit sincos calls where appropriate, if we want them. Index: src/Makefile =================================================================== --- src.orig/Makefile 2014-10-04 16:04:37.233794613 +0200 +++ src/Makefile 2014-10-04 16:06:17.214484287 +0200 @@ -740,7 +740,7 @@ -I$(BASEPWD)/libnml/posemath -I$(BASEPWD)/rtapi -I$(BASEPWD)/hal \ -I$(BASEPWD)/emc/nml_intf -I$(BASEPWD)/emc/kinematics -I$(BASEPWD)/emc/motion \ -DSEQUENTIAL_SUPPORT -DHAL_SUPPORT -DDYNAMIC_PLCSIZE -DRT_SUPPORT -DOLD_TIMERS_MONOS_SUPPORT -DMODBUS_IO_MASTER \ - -fno-fast-math $(call cc-option,-mieee-fp) -fno-unsafe-math-optimizations \ + -fno-fast-math $(call cc-option,-mieee-fp) -fno-unsafe-math-optimizations -fno-builtin-sincos -fno-builtin-sin -fno-builtin-cos \ $(call cc-option,-Wframe-larger-than=2560) $(call cc-option,-Wno-declaration-after-statement) \ $(INTEGER_OVERFLOW_FLAGS) ifneq ($(KERNELRELEASE),) Index: src/Makefile.modinc.in =================================================================== --- src.orig/Makefile.modinc.in 2014-10-04 16:04:37.233794613 +0200 +++ src/Makefile.modinc.in 2014-10-04 16:06:17.214484287 +0200 @@ -62,7 +62,7 @@ KERNELDIR := @KERNELDIR@ CC := @CC@ RTAI = @RTAI@ -RTFLAGS = $(filter-out -ffast-math,@RTFLAGS@ @EXT_RTFLAGS@) -fno-fast-math $(call cc-option,-mieee-fp) -fno-unsafe-math-optimizations +RTFLAGS = $(filter-out -ffast-math,@RTFLAGS@ @EXT_RTFLAGS@) -fno-fast-math $(call cc-option,-mieee-fp) -fno-unsafe-math-optimizations -fno-builtin-sincos -fno-builtin-sin -fno-builtin-cos RTFLAGS := -Os -g -I. -I@RTDIR@/include $(RTFLAGS) -DRTAPI -D_GNU_SOURCE -Drealtime ifneq ($(KERNELRELEASE),) ifeq ($(RTARCH):$(RTAI):$(filter $(RTFLAGS),-msse),x86_64:3:) -- Michael
Index: src/Makefile =================================================================== --- src.orig/Makefile 2014-10-04 16:04:37.233794613 +0200 +++ src/Makefile 2014-10-04 16:06:17.214484287 +0200 @@ -740,7 +740,7 @@ -I$(BASEPWD)/libnml/posemath -I$(BASEPWD)/rtapi -I$(BASEPWD)/hal \ -I$(BASEPWD)/emc/nml_intf -I$(BASEPWD)/emc/kinematics -I$(BASEPWD)/emc/motion \ -DSEQUENTIAL_SUPPORT -DHAL_SUPPORT -DDYNAMIC_PLCSIZE -DRT_SUPPORT -DOLD_TIMERS_MONOS_SUPPORT -DMODBUS_IO_MASTER \ - -fno-fast-math $(call cc-option,-mieee-fp) -fno-unsafe-math-optimizations \ + -fno-fast-math $(call cc-option,-mieee-fp) -fno-unsafe-math-optimizations -fno-builtin-sincos -fno-builtin-sin -fno-builtin-cos \ $(call cc-option,-Wframe-larger-than=2560) $(call cc-option,-Wno-declaration-after-statement) \ $(INTEGER_OVERFLOW_FLAGS) ifneq ($(KERNELRELEASE),) Index: src/Makefile.modinc.in =================================================================== --- src.orig/Makefile.modinc.in 2014-10-04 16:04:37.233794613 +0200 +++ src/Makefile.modinc.in 2014-10-04 16:06:17.214484287 +0200 @@ -62,7 +62,7 @@ KERNELDIR := @KERNELDIR@ CC := @CC@ RTAI = @RTAI@ -RTFLAGS = $(filter-out -ffast-math,@RTFLAGS@ @EXT_RTFLAGS@) -fno-fast-math $(call cc-option,-mieee-fp) -fno-unsafe-math-optimizations +RTFLAGS = $(filter-out -ffast-math,@RTFLAGS@ @EXT_RTFLAGS@) -fno-fast-math $(call cc-option,-mieee-fp) -fno-unsafe-math-optimizations -fno-builtin-sincos -fno-builtin-sin -fno-builtin-cos RTFLAGS := -Os -g -I. -I@RTDIR@/include $(RTFLAGS) -DRTAPI -D_GNU_SOURCE -Drealtime ifneq ($(KERNELRELEASE),) ifeq ($(RTARCH):$(RTAI):$(filter $(RTFLAGS),-msse),x86_64:3:)
signature.asc
Description: PGP signature
------------------------------------------------------------------------------ Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk
_______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers