[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