This is an archive of the discontinued LLVM Phabricator instance.

[ELF] - Allow symbols of STT_NOTYPE to be associated with SHT_SYMTAB sections.
ClosedPublic

Authored by grimar on Nov 14 2016, 8:06 AM.

Details

Summary

Found this when tried to link lang/ccl FreeBSD port.
Issue is very close to D23201.

GNU assembler 2.17.50 [FreeBSD] 2007-07-03 could generate broken objects,
where notype symbols are associated with symtab:

  [ 9] .symtab           SYMTAB           0000000000000000  00003c78
       0000000000006858  0000000000000018          10   803     8

192: 000000000000000d     0 NOTYPE  LOCAL  DEFAULT    9 _cons_org

This is the reason of lang/ccl port link fail:

===>  Building for ccl-1.11
m4 -DFREEBSD -DX86 -DX8664 -DHAVE_TLS -I../ ../x86-spjump64.s | as  --64 -o x86-spjump64.o
cc -m64 -g  -Wl,--export-dynamic    -o ../../fx86cl64  pad.o x86-spjump64.o x86-spentry64.o x86-subprims64.o pmcl-kernel.o gc-common.o  x86-gc.o bits.o  x86-exceptions.o  x86-utils.o  image.o thread_manager.o lisp-debug.o memory.o unix-calls.o x86-asmutils64.o  imports.o lispdcmd.o plprint.o plsym.o xlbt.o x86_print.o -lm -lthr
/usr/bin/ld: error: x86-spjump64.o: invalid section index: 9
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** Error code 1

Patch fixes the issue.

Diff Detail

Repository
rL LLVM

Event Timeline

grimar updated this revision to Diff 77814.Nov 14 2016, 8:06 AM
grimar retitled this revision from to [ELF] - Allow symbols of STT_NOTYPE to be associated with SHT_SYMTAB sections..
grimar updated this object.
grimar added reviewers: ruiu, rafael.
grimar added subscribers: davide, emaste, llvm-commits and 2 others.
ruiu accepted this revision.Nov 14 2016, 10:58 AM
ruiu edited edge metadata.

LGTM

This revision is now accepted and ready to land.Nov 14 2016, 10:58 AM
This revision was automatically updated to reflect the committed changes.