[GHC] #11205: Validation on ARM fails to due Corex-A8 erratum check
#11205: Validation on ARM fails to due Corex-A8 erratum check --------------------------------+--------------------------------------- Reporter: bgamari | Owner: Type: bug | Status: new Priority: normal | Milestone: 8.0.1 Component: Compiler | Version: 7.11 Keywords: | Operating System: Linux Architecture: arm | Type of failure: Compile-time crash Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: --------------------------------+--------------------------------------- Numerous tests fail during validation on ARM due to linking issues. All seem to be of the flavor, {{{ =====> RolesIArray(normal) 74 of 4859 [0, 18, 1] --- /dev/null 2015-12-11 10:17:52.480000000 +0100 +++ ./warnings/should_compile/T10890/T10890.comp.stderr.normalised 2015-12-11 22:25:38.453251095 +0100 @@ -0,0 +1,174 @@ +/usr/bin/ld.gold: warning: cannot scan executable section 1 of /mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151211/base-4.9.0.0/libHSbase-4.9.0.0.a(Base.o) for Cortex-A8 erratum because it has no mapping symbols. +/usr/bin/ld.gold: warning: cannot scan executable section 1 of /mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151211/base-4.9.0.0/libHSbase-4.9.0.0.a(Either.o) for Cortex-A8 erratum because it has no mapping symbols. +/usr/bin/ld.gold: warning: cannot scan executable section 1 of /mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151211/base-4.9.0.0/libHSbase-4.9.0.0.a(Typeable.o) for Cortex-A8 erratum because it has no mapping symbols. +/usr/bin/ld.gold: warning: cannot scan executable section 1 of /mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151211/base-4.9.0.0/libHSbase-4.9.0.0.a(Internal.o) for Cortex-A8 erratum because it has no mapping symbols. +/usr/bin/ld.gold: warning: cannot scan executable section 1 of /mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151211/base-4.9.0.0/libHSbase-4.9.0.0.a(Base.o) for Cortex-A8 erratum because it has no mapping symbols. +/usr/bin/ld.gold: warning: cannot scan executable section 1 of /mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151211/base-4.9.0.0/libHSbase-4.9.0.0.a(IO.o) for Cortex-A8 erratum because it has no mapping symbols. +/usr/bin/ld.gold: warning: cannot scan executable section 1 of /mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151211/base-4.9.0.0/libHSbase-4.9.0.0.a(Signal.o) for Cortex-A8 erratum because it has no mapping symbols. +/usr/bin/ld.gold: warning: cannot scan executable section 1 of /mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151211/base-4.9.0.0/libHSbase-4.9.0.0.a(Sync.o) for Cortex-A8 erratum because it has no mapping symbols. +/usr/bin/ld.gold: warning: cannot scan executable section 1 of /mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151211/base-4.9.0.0/libHSbase-4.9.0.0.a(Err.o) for Cortex-A8 erratum because it has no mapping symbols. +/usr/bin/ld.gold: warning: cannot scan executable section 1 of /mnt/work/arm/ghc/ghc/bindisttest/install dir/lib/ghc-7.11.20151211/base-4.9.0.0/libHSbase-4.9.0.0.a(Exception.o) for Cortex-A8 erratum because it has no mapping symbols. }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11205> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#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: | ---------------------------------------+---------------------------------- Changes (by bgamari): * status: new => patch * differential: => Phab:D1599 Comment: This appears to be the same issue as #10376 and #10464. This bug will track the issue with respect to testsuite validation failure in particular. My attempt at fixing this was Phab:D1599 but sadly this doesn't appear to be sufficient. In particular it appears that bindist preparation strips binaryies. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11205#comment:1> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#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 thomie): bindist preparation does not strip binaries. If you find that it does, then that is a bug, and I'd like to know which file in `bindistprep/` is stripped. validate also tries to **install** the binary distribution, by running 'make install'. Since it doesn't run 'make install-strip', it won't strip the installed executables (ghc, ghc-pkg, haddock, etc.). Whether it strips libraries (.a and .so files) should depend on the setting of STRIP_CMD. There could be a bug here, maybe in Cabal. It would help to know which file in `bindisttest/` is stripped after running `./validate`, when `STRIP_CMD=:`. Make sure you're using HEAD, not ghc-7.10. Stripping was broken before (see ticket:1851#comment:16). ticket:10601#comment:4 is also relevant. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11205#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#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
#11205: Validation on ARM fails to due Corex-A8 erratum check ---------------------------------------+---------------------------------- Reporter: bgamari | Owner: Type: bug | Status: closed Priority: normal | Milestone: 8.0.1 Component: Compiler | Version: 7.11 Resolution: fixed | 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: | ---------------------------------------+---------------------------------- Changes (by bgamari): * status: patch => closed * resolution: => fixed Comment: This was closed with Phab:D1599. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11205#comment:4> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC