[GHC] #11205: Validation on ARM fails to due Corex-A8 erratum check

GHC ghc-devs at haskell.org
Sun Dec 20 00:08:20 UTC 2015


#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 at 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 at 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


More information about the ghc-tickets mailing list