#11205: Validation on ARM fails to due Corex-A8 erratum check ---------------------------------------+---------------------------------- Reporter: bgamari | Owner: Type: bug | Status: patch Priority: normal | Milestone: 8.0.1 Component: Compiler | Version: 7.11 Resolution: | Keywords: Operating System: Linux | Architecture: arm Type of failure: Compile-time crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Phab:D1599 Wiki Page: | ---------------------------------------+---------------------------------- Comment (by bgamari): Hi Thomie; I am quite certain I am on `master`. In particular, with b02838405b00bcdeebb44da0a7a9562cd7fda66b with Phab:D1599 I am seeing this issue despite, {{{ $ git show commit c625506556698a9d695c720ca87cefab4a1f018d Author: Ben Gamari <ben@smart-cactus.org> Date: Fri Dec 11 15:18:43 2015 +0100 config.mk.in: Disable stripping by default on ARM The Cortex A8 hardware apparently has a bug which ld.gold will try to correct; however in order to do so it must have unstripped executables lest we see warnings of the form (see #10376, #10464), /usr/bin/ld.gold: warning: cannot scan executable section 1 of ... for Cortex-A8 erratum because it has no mapping symbols. Consequently we disabling stripping by default on this architecture. diff --git a/mk/config.mk.in b/mk/config.mk.in index d7cd05b..38cb262 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -755,6 +755,17 @@ endif ifeq "$(TARGETPLATFORM)" "x86_64-unknown-mingw32" STRIP_CMD = $(TOP)/inplace/mingw/bin/strip.exe +elif "$(TARGETPLATFORM)" "arm-unknown-linux" +# The Cortex A8 hardware apparently has a bug which ld.gold will check for; +# however in order to do so it must have unstripped executables lest we +# see warnings of the form (see #10376, #10464), +# +# /usr/bin/ld.gold: warning: cannot scan executable section 1 of ... for +# Cortex-A8 erratum because it has no mapping symbols. +# +# Consequently we disabling stripping by default on this architecture. +# The hack of using `:` to disable stripping is implemented by ghc-cabal. +STRIP_CMD = : else STRIP_CMD = strip endif [0105 ben@odroid ghc(D1599)] $ make show! VALUE=TARGETPLATFORM make --no-print-directory -f ghc.mk show NO_INCLUDE_PKGDATA=YES TARGETPLATFORM="arm-unknown-linux" $ ./validate >log 2>&1 ... Wait many hours. Tests fail with above messages $ grep strip log checking for arm-unknown-linux-strip... no checking for strip... strip checking for arm-unknown-linux-strip... strip checking whether stripping libraries is possible... yes # on Win64, "install -s" calls a strip that doesn't understand 64bit binaries. for i in driver/ghc-usage.txt driver/ghci-usage.txt includes/dist- derivedconstants/header/platformConstants settings; do case $i in *.a) /usr/bin/install -c -m 644 $i "/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219"; true "/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219"/`basename $i` ;; *.dll) /usr/bin/install -c -m 755 $i "/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219" ; strip "/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219"/`basename $i` ;; *.so) /usr/bin/install -c -m 755 $i "/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219" ;; *.dylib) /usr/bin/install -c -m 755 $i "/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219";; *) /usr/bin/install -c -m 644 $i "/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219"; esac; done # on Win64, "install -s" calls a strip that doesn't understand 64bit binaries. for i in rts/dist/build/libHSrts.a rts/dist/build/libHSrts- ghc7.11.20151219.so rts/dist/build/libHSrts_l.a rts/dist/build/libHSrts_debug.a rts/dist/build/libHSrts_thr.a rts/dist/build/libHSrts_thr_debug.a rts/dist/build/libHSrts_thr_l.a rts/dist/build/libHSrts_debug-ghc7.11.20151219.so rts/dist/build /libHSrts_thr-ghc7.11.20151219.so rts/dist/build/libHSrts_thr_debug- ghc7.11.20151219.so rts/dist/build/libHSrts_l-ghc7.11.20151219.so rts/dist/build/libHSrts_thr_l-ghc7.11.20151219.so rts/dist/build/libffi.so.6.0.4 rts/dist/build/libffi.so.6 rts/dist/build/libffi.so rts/dist/build/libCffi.a rts/dist/build/libCffi_l.a rts/dist/build/libCffi_debug.a rts/dist/build/libCffi_thr.a rts/dist/build/libCffi_thr_debug.a rts/dist/build/libCffi_thr_l.a; do case $i in *.a) /usr/bin/install -c -m 644 $i "/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219/rts"; true "/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219/rts"/`basename $i` ;; *.dll) /usr/bin/install -c -m 755 $i "/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219/rts" ; strip "/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219/rts"/`basename $i` ;; *.so) /usr/bin/install -c -m 755 $i "/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219/rts" ;; *.dylib) /usr/bin/install -c -m 755 $i "/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219/rts";; *) /usr/bin/install -c -m 644 $i "/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219/rts"; esac; done "utils/ghc-cabal/dist-install/build/tmp/ghc-cabal-bindist" copy libraries /ghc-prim dist-install "strip" '' '/mnt/work/arm/ghc/ghc/bindisttest/install dir' '/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219' '/mnt/wo rk/arm/ghc/ghc/bindisttest/install dir/share/doc/ghc/html/libraries' 'v dyn' "utils/ghc-cabal/dist-install/build/tmp/ghc-cabal-bindist" copy libraries /integer-gmp dist-install "strip" '' '/mnt/work/arm/ghc/ghc/bindisttest/install dir' '/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219' '/mnt /work/arm/ghc/ghc/bindisttest/install dir/share/doc/ghc/html/libraries' 'v dyn' "utils/ghc-cabal/dist-install/build/tmp/ghc-cabal-bindist" copy libraries/base dist-install "strip" '' '/mnt/work/arm/ghc/ghc/bindisttest/install dir' '/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219' '/mnt/work/a rm/ghc/ghc/bindisttest/install dir/share/doc/ghc/html/libraries' 'v dyn' "utils/ghc-cabal/dist-install/build/tmp/ghc-cabal-bindist" copy libraries/filepath dist-install "strip" '' '/mnt/work/arm/ghc/ghc/bindisttest/install dir' '/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219' '/mnt/wo rk/arm/ghc/ghc/bindisttest/install dir/share/doc/ghc/html/libraries' 'v dyn' "utils/ghc-cabal/dist-install/build/tmp/ghc-cabal-bindist" copy libraries/array dist-install "strip" '' '/mnt/work/arm/ghc/ghc/bindisttest/install dir' '/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219' '/mnt/work/ arm/ghc/ghc/bindisttest/install dir/share/doc/ghc/html/libraries' 'v dyn' "utils/ghc-cabal/dist-install/build/tmp/ghc-cabal-bindist" copy libraries/deepseq dist-install "strip" '' '/mnt/work/arm/ghc/ghc/bindisttest/install dir' '/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219' '/mnt/wor k/arm/ghc/ghc/bindisttest/install dir/share/doc/ghc/html/libraries' 'v dyn' "utils/ghc-cabal/dist-install/build/tmp/ghc-cabal-bindist" copy libraries/bytestring dist-install "strip" '' '/mnt/work/arm/ghc/ghc/bindisttest/install dir' '/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219' '/mnt/ work/arm/ghc/ghc/bindisttest/install dir/share/doc/ghc/html/libraries' 'v dyn' "utils/ghc-cabal/dist-install/build/tmp/ghc-cabal-bindist" copy libraries/containers dist-install "strip" '' '/mnt/work/arm/ghc/ghc/bindisttest/install dir' '/mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151219' '/mnt/ work/arm/ghc/ghc/bindisttest/install dir/share/doc/ghc/html/libraries' 'v dyn' }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11205#comment:3> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler