The following error occurs when linking 416.gamess during the first pass of a feedback-directed optimization build of SPEC CPU2006. This occurs on GCC mainline using binutils 2.21.1. Alan, I'll send you an email with information about where to find relevant build logs and so forth. Thanks! Bill /home/wschmidt/gcc/install/gcc-mainline-base/bin/gfortran -g -save-temps=obj -ffast-math -O3 -mveclibabi=mass -mcpu=power7 -mrecip=rsqrt -fpeel-loops -funroll-loops -ftree-vectorize -fvect-cost-model -O3 -mvsx -maltivec -mpopcntd -m64 -ftree-loop-linear -static -Wl,-q -Wl,--wrap,atan2 -Wl,-Map=link.map,--cref -g -save-temps=obj -ffast-math -O3 -mveclibabi=mass -mcpu=power7 -mrecip=rsqrt -fpeel-loops -funroll-loops -ftree-vectorize -fvect-cost-model -O3 -mvsx -maltivec -mpopcntd -m64 -ftree-loop-linear -L %{BASE_DIR}/lib64 -L /opt/ibmcmp/xlmass/6.1/lib64 -L /home/wschmidt/gcc/install/gcc-mainline-base/lib64/power7 -fprofile-generate aldeci.fppized.o algnci.fppized.o basecp.fppized.o basext.o bashuz.o bashz2.o basn21.fppized.o basn31.o bassto.fppized.o blas.fppized.o ccaux.o ccsdt.fppized.o chgpen.fppized.o cisgrd.fppized.o cosmo.fppized.o cphf.fppized.o cpmchf.o cprohf.fppized.o ddi.fppized.o delocl.fppized.o dft.fppized.o dftaux.fppized.o dftexc.fppized.o dftfun.o dftgrd.fppized.o dftint.fppized.o dgeev.o dmulti.fppized.o drc.fppized.o dummygetenv.fppized.o ecp.fppized.o ecpder.fppized.o ecplib.fppized.o ecppot.o efdrvr.fppized.o efelec.o efgrd2.fppized.o efgrda.fppized.o efgrdb.fppized.o efgrdc.fppized.o efinp.fppized.o efinta.fppized.o efintb.fppized.o efpaul.fppized.o efpcm.fppized.o efpcov.fppized.o eigen.fppized.o eomcc.fppized.o ffield.fppized.o frfmt.fppized.o fsodci.fppized.o gamess.fppized.o globop.fppized.o gradex.fppized.o grd1.fppized.o grd2a.fppized.o grd2b.o grd2c.fppized.o guess.fppized.o gugdga.fppized.o gugdgb.fppized.o gugdm.fppized.o gugdm2.fppized.o gugdrt.fppized.o gugem.fppized.o gugsrt.fppized.o gvb.fppized.o hess.fppized.o hss1a.fppized.o hss1b.fppized.o hss2a.fppized.o hss2b.fppized.o inputa.fppized.o inputb.fppized.o inputc.fppized.o int1.fppized.o int2a.fppized.o int2b.o iolib.fppized.o lagran.fppized.o local.fppized.o loccd.fppized.o locpol.fppized.o mccas.fppized.o mcjac.o mcpinp.fppized.o mcpint.fppized.o mcplib.o mcqdpt.fppized.o mcqdwt.o mcqud.fppized.o mcscf.fppized.o mctwo.fppized.o morokm.fppized.o mp2.fppized.o mp2ddi.fppized.o mp2grd.fppized.o mpcdat.o mpcgrd.fppized.o mpcint.fppized.o mpcmol.fppized.o mpcmsc.fppized.o mthlib.fppized.o nameio.fppized.o nmr.fppized.o olix.o ordint.fppized.o ormas1.fppized.o parley.fppized.o pcm.fppized.o pcmcav.o pcmcv2.fppized.o pcmder.fppized.o pcmdis.fppized.o pcmief.fppized.o pcmpol.fppized.o pcmvch.fppized.o prpel.fppized.o prplib.fppized.o prppop.fppized.o qeigen.fppized.o qfmm.fppized.o qmfm.fppized.o qmmm.fppized.o qrel.fppized.o raman.fppized.o rhfuhf.fppized.o rxncrd.fppized.o ryspol.o scflib.fppized.o scfmi.fppized.o scrf.fppized.o sobrt.fppized.o soffac.fppized.o solib.fppized.o sozeff.fppized.o statpt.fppized.o surf.fppized.o symorb.fppized.o symslc.fppized.o tdhf.fppized.o trans.fppized.o trfdm2.fppized.o trnstn.fppized.o trudge.fppized.o umpddi.fppized.o unport.fppized.o vibanl.fppized.o vscf.fppized.o zheev.fppized.o zmatrx.fppized.o -lm /home/meissner/tools/ppc64/lib/libfastmath-atan2.a -lmassvp7_64 -lmass_simdp7_64 -lmass_64 -lm -o gamess /home/wschmidt/binutils/install/bin/ld: BFD (GNU Binutils) 2.21.1 internal error, aborting at /home/wschmidt/binutils/binutils-2.21.1/bfd/elf64-ppc.c line 8431 in ppc64_elf_edit_toc /home/wschmidt/binutils/install/bin/ld: Please report this bug. collect2: error: ld returned 1 exit status
This turns out to be an utterly weird .debug_loc reference into the TOC. I think gcc var tracking had a seizure. I cannot see why we would ever want a TOC reference in debug info, so I'm closing this as wontfix. I suppose the linker could edit the DW_OP_addr <toc entry>, DW_OP_deref to DW_OP_addr <what the toc entry pointed to>, DW_OP_nop, but that's just silly when gcc shouldn't be generating this garbage in the first place. (insn 269 7857 8303 5 (set (reg/f:DI 9 9 [1981]) (const:DI (plus:DI (reg:DI 2 2) (high:DI (const:DI (unspec:DI [ (symbol_ref/u:DI ("*.LC7") [flags 0x2]) ] UNSPEC_TOCREL)))))) 513 {largetoc_high} (expr_list:REG_EQUIV (const:DI (plus:DI (reg:DI 2 2) (high:DI (const:DI (unspec:DI [ (symbol_ref/u:DI ("*.LC7") [flags 0x2]) ] UNSPEC_TOCREL))))) (nil))) (debug_insn 8303 269 8128 5 (var_location:DI D#146 (reg/f:DI 9 9 [1981])) -1 (nil)) (debug_insn 8124 278 8123 5 (var_location:DI D#143 (plus:DI (reg/f:DI 20 20 [5416]) (const_int 32 [0x20]))) -1 (nil)) (debug_insn 8123 8124 7848 5 (var_location:DI D#142 (mem/u/c:DI (lo_sum:DI (debug_expr:DI D#146) (const:DI (unspec:DI [ (symbol_ref/u:DI ("*.LC7") [flags 0x2]) ] UNSPEC_TOCREL))) [23 S8 A8])) -1 (nil)) (debug_insn 7848 8123 7852 5 (var_location:SI iznuc (fix:SI (plus:DF (float:DF (mem:SI (debug_expr:DI D#142) [0 MEM[base: D.8528_3216, offset: 0B]+0 S4 A32])) (mem:DF (debug_expr:DI D#143) [0 MEM[base: D.8527_3225, offset: 0B]+0 S8 A64])))) chgpen.fppized.f:416 -1 (nil))
CVSROOT: /cvs/src Module name: src Changes by: amodra@sourceware.org 2011-09-06 07:41:25 Modified files: bfd : ChangeLog elf64-ppc.c Log message: PR ld/13131 * elf64-ppc.c (adjust_toc_syms): Delete redundant code. (ppc64_elf_edit_toc): Fix style nit. Report some details on linker failure due to reference in debug or non-alloc sections to optimized away toc entry, and don't abort. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&r1=1.5464&r2=1.5465 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf64-ppc.c.diff?cvsroot=src&r1=1.361&r2=1.362
CVSROOT: /cvs/src Module name: src Changes by: amodra@sourceware.org 2011-09-07 13:56:09 Modified files: bfd : ChangeLog elf64-ppc.c Log message: PR ld/13131 * bfd/elf64-ppc.c (adjust_toc_syms): Ensure ppc64_elf_howto_table is initialized. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&r1=1.5465&r2=1.5466 http://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/elf64-ppc.c.diff?cvsroot=src&r1=1.362&r2=1.363