[GHC] #12738: GHC drops -optl flags
GHC
ghc-devs at haskell.org
Wed Oct 19 00:10:47 UTC 2016
#12738: GHC drops -optl flags
-------------------------------------+-------------------------------------
Reporter: niteria | Owner:
Type: bug | Status: new
Priority: high | Milestone:
Component: Compiler | Version: 8.0.1
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
This is a regression between GHC 7.10 and GHC 8.0.
Repro script:
{{{
GHC_ROOT=$HOME/local/ghc-8.0.1-facebook # built 8.0.1 branch, fails with
recent HEAD as well
GHC=$GHC_ROOT/inplace/bin/ghc-stage2
GPP=g++
touch build_info.o # irrelevant
"$GHC" -no-auto-link-packages -pgml"$GPP" -o a.out build_info.o -optl-
Xlinker -optl$GHC_ROOT/libraries/ghc-prim/dist-install/build/libHSghc-
prim-0.5.0.0.a -optl-Xlinker -optl-u -optl-Xlinker
-optlghczmprim_GHCziTypes_Izh_static_info -v
}}}
Output from GHC 7.10 (expected):
{{{
Glasgow Haskell Compiler, Version 7.10.2, stage 2 booted by GHC version
7.8.4
Using binary package database:
/usr/local/haskell/ghc-7.10.2-x86_64/lib/ghc-7.10.2/package.conf.d/package.cache
Using binary package database:
/home/bnitka/.ghc/x86_64-linux-7.10.2/package.conf.d/package.cache
wired-in package ghc-prim mapped to ghc-
prim-0.4.0.0-af16264bc80979d06e37ac63e3ba9a21
wired-in package integer-gmp mapped to integer-
gmp-1.0.0.0-8e0f14d0262184533b417ca1f8b44482
wired-in package base mapped to
base-4.8.1.0-4f7206fd964c629946bb89db72c80011
wired-in package rts mapped to builtin_rts
wired-in package template-haskell mapped to template-
haskell-2.10.0.0-90e8393d65f4ae44cb2026177a257f28
wired-in package ghc mapped to ghc-7.10.2-787f1a784665fb3ac2a1be1d9d85245b
wired-in package dph-seq not found.
wired-in package dph-par not found.
Hsc static flags:
Created temporary directory: /tmp/ghc2775839_0
*** C Compiler:
/usr/bin/gcc -fno-stack-protector -DTABLES_NEXT_TO_CODE -c
/tmp/ghc2775839_0/ghc_1.c -o /tmp/ghc2775839_0/ghc_2.o
-I/usr/local/haskell/ghc-7.10.2-x86_64/lib/ghc-7.10.2/include
*** C Compiler:
/usr/bin/gcc -fno-stack-protector -DTABLES_NEXT_TO_CODE -c
/tmp/ghc2775839_0/ghc_3.s -o /tmp/ghc2775839_0/ghc_4.o
-I/usr/local/haskell/ghc-7.10.2-x86_64/lib/ghc-7.10.2/include
*** Linker:
'g++' '-Wl,--hash-size=31' -Wl,--reduce-memory-overheads -Wl,--no-as-
needed -Xlinker /home/bnitka/local/ghc-8.0.1-facebook/libraries/ghc-prim
/dist-install/build/libHSghc-prim-0.5.0.0.a -Xlinker -u -Xlinker
ghczmprim_GHCziTypes_Izh_static_info -o a.out build_info.o
/tmp/ghc2775839_0/ghc_2.o /tmp/ghc2775839_0/ghc_4.o
build_info.o: file not recognized: File truncated
collect2: ld returned 1 exit status
*** Deleting temp files:
Deleting: /tmp/ghc2775839_0/ghc_4.o /tmp/ghc2775839_0/ghc_3.s
/tmp/ghc2775839_0/ghc_2.o /tmp/ghc2775839_0/ghc_1.c
*** Deleting temp dirs:
Deleting: /tmp/ghc2775839_0
}}}
Output from GHC 8.0:
{{{
Glasgow Haskell Compiler, Version 8.0.1.20160729, stage 2 booted by GHC
version 7.10.2
Using binary package database:
/data/users/bnitka/ghc-8.0.1-facebook/inplace/lib/package.conf.d/package.cache
loading package database
/data/users/bnitka/ghc-8.0.1-facebook/inplace/lib/package.conf.d
wired-in package ghc-prim mapped to ghc-prim-0.5.0.0
wired-in package integer-gmp mapped to integer-gmp-1.0.0.1
wired-in package base mapped to base-4.9.0.0
wired-in package rts mapped to rts
wired-in package template-haskell mapped to template-haskell-2.11.0.0
wired-in package ghc mapped to ghc-8.0.1.20160729
wired-in package dph-seq not found.
wired-in package dph-par not found.
Hsc static flags:
Created temporary directory: /tmp/ghc2778573_0
*** C Compiler:
/usr/bin/gcc -fno-stack-protector -DTABLES_NEXT_TO_CODE -c
/tmp/ghc2778573_0/ghc_1.c -o /tmp/ghc2778573_0/ghc_2.o
-I/data/users/bnitka/ghc-8.0.1-facebook/rts/dist/build
-I/data/users/bnitka/ghc-8.0.1-facebook/includes
-I/data/users/bnitka/ghc-8.0.1-facebook/includes/dist-
derivedconstants/header
*** C Compiler:
/usr/bin/gcc -fno-stack-protector -DTABLES_NEXT_TO_CODE -c
/tmp/ghc2778573_0/ghc_4.s -o /tmp/ghc2778573_0/ghc_5.o
*** Linker:
'g++' '-Wl,--hash-size=31' -Wl,--reduce-memory-overheads -Wl,--no-as-
needed -Xlinker -Xlinker -u -Xlinker ghczmprim_GHCziTypes_Izh_static_info
-o a.out -Wl,--gc-sections build_info.o /tmp/ghc2778573_0/ghc_2.o
/tmp/ghc2778573_0/ghc_5.o /home/bnitka/local/ghc-8.0.1-facebook/libraries
/ghc-prim/dist-install/build/libHSghc-prim-0.5.0.0.a
g++: ghczmprim_GHCziTypes_Izh_static_info: No such file or directory
*** Deleting temp files:
Deleting: /tmp/ghc2778573_0/ghc_7.rsp /tmp/ghc2778573_0/ghc_6.rsp
/tmp/ghc2778573_0/ghc_5.o /tmp/ghc2778573_0/ghc_4.s
/tmp/ghc2778573_0/ghc_3.rsp /tmp/ghc2778573_0/ghc_2.o
/tmp/ghc2778573_0/ghc_1.c
*** Deleting temp dirs:
Deleting: /tmp/ghc2778573_0
`g++' failed in phase `Linker'. (Exit code: 1)
}}}
The relevant difference is in the flags passed to `g++`.
{{{
'g++' '-Wl,--hash-size=31' -Wl,--reduce-memory-overheads -Wl,--no-as-
needed -Xlinker /home/bnitka/local/ghc-8.0.1-facebook/libraries/ghc-prim
/dist-install/build/libHSghc-prim-0.5.0.0.a -Xlinker -u -Xlinker
ghczmprim_GHCziTypes_Izh_static_info -o a.out build_info.o
/tmp/ghc2775839_0/ghc_2.o /tmp/ghc2775839_0/ghc_4.o
}}}
vs
{{{
'g++' '-Wl,--hash-size=31' -Wl,--reduce-memory-overheads -Wl,--no-as-
needed -Xlinker -Xlinker -u -Xlinker ghczmprim_GHCziTypes_Izh_static_info
-o a.out -Wl,--gc-sections build_info.o /tmp/ghc2778573_0/ghc_2.o
/tmp/ghc2778573_0/ghc_5.o /home/bnitka/local/ghc-8.0.1-facebook/libraries
/ghc-prim/dist-install/build/libHSghc-prim-0.5.0.0.a
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12738>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list