[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