Is -fsplit-stack option used anywhere? My wild guess is that with ld.bfd, the thinLTO link for the DSO does not bring in morestack.o from libgcc.a, but the hidden symbol is defined in lldb binary. David On Mon, Oct 3, 2016 at 1:54 PM, Teresa Johnson via llvm-dev < llvm-dev at lists.llvm.org> wrote:> Aha - finally reproduced! The difference is using ld.bfd not ld.gold. With > that I get the same failure (using 3.9 to build 3.9 sources): > > /usr/local/google/home/tejohnson/binutils_build/install/bin/ld: > bin/lldb-3.9.1: hidden symbol `__morestack' in > /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a(morestack.o) is referenced by > DSO > /usr/local/google/home/tejohnson/binutils_build/install/bin/ld: final > link failed: Bad value > clang-3.9: error: linker command failed with exit code 1 (use -v to see > invocation) > ninja: build stopped: subcommand failed. > > I am not sure what the official support story is for LLVMgold.so and > ld.bfd. As mentioned earlier, the LLVM site indicates it should use the > gold linker. Can you use that while I try to figure out whether this is > something that should be supported/working? > > Thanks, > Teresa > > On Mon, Oct 3, 2016 at 9:56 AM, Carsten Mattner <carstenmattner at gmail.com> > wrote: > >> On Mon, Oct 3, 2016 at 3:50 PM, Teresa Johnson <tejohnson at google.com> >> wrote: >> > >> > On Sun, Oct 2, 2016 at 4:02 AM, Carsten Mattner < >> carstenmattner at gmail.com> wrote: >> >> >> >> On Sun, Oct 2, 2016 at 6:41 AM, Teresa Johnson <tejohnson at google.com> >> wrote: >> > > >> > > > I use trunk, but it depends on how close to the bleeding edge you >> > > > are comfortable with. But like I said, I also tried bootstrapping >> > > > with 3.9 (both trunk as well as 3.9 sources) and couldn't reproduce. >> >> >> >> Hmm, so you're saying neither fails for you, right? >> > >> > Yes >> >> Okay. Do you mind focusing on the 3.9 branch? It's less of a moving target >> and lends itself more to figuring out what's failing for me. >> >> As soon as I get around to it, I'll send you my full configure and build >> steps as a shell script. Need to streamline it. >> > > > > -- > Teresa Johnson | Software Engineer | tejohnson at google.com | > 408-460-2413 > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161003/0692211e/attachment.html>
On Mon, Oct 3, 2016 at 2:59 PM, Xinliang David Li <xinliangli at gmail.com> wrote:> Is -fsplit-stack option used anywhere? My wild guess is that with ld.bfd, > the thinLTO link for the DSO does not bring in morestack.o from libgcc.a, > but the hidden symbol is defined in lldb binary. >AFAICT, no - I had done "ninja -v" so I have all of the intermediate build commands, and it doesn't show up in that. I'll have to do some more digging to figure out why it is referenced from liblldb.so in the ld.bfd case and not when using ld.gold Teresa David> > On Mon, Oct 3, 2016 at 1:54 PM, Teresa Johnson via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > >> Aha - finally reproduced! The difference is using ld.bfd not ld.gold. >> With that I get the same failure (using 3.9 to build 3.9 sources): >> >> /usr/local/google/home/tejohnson/binutils_build/install/bin/ld: >> bin/lldb-3.9.1: hidden symbol `__morestack' in >> /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a(morestack.o) is referenced by >> DSO >> /usr/local/google/home/tejohnson/binutils_build/install/bin/ld: final >> link failed: Bad value >> clang-3.9: error: linker command failed with exit code 1 (use -v to see >> invocation) >> ninja: build stopped: subcommand failed. >> >> I am not sure what the official support story is for LLVMgold.so and >> ld.bfd. As mentioned earlier, the LLVM site indicates it should use the >> gold linker. Can you use that while I try to figure out whether this is >> something that should be supported/working? >> >> Thanks, >> Teresa >> >> On Mon, Oct 3, 2016 at 9:56 AM, Carsten Mattner <carstenmattner at gmail.com >> > wrote: >> >>> On Mon, Oct 3, 2016 at 3:50 PM, Teresa Johnson <tejohnson at google.com> >>> wrote: >>> > >>> > On Sun, Oct 2, 2016 at 4:02 AM, Carsten Mattner < >>> carstenmattner at gmail.com> wrote: >>> >> >>> >> On Sun, Oct 2, 2016 at 6:41 AM, Teresa Johnson <tejohnson at google.com> >>> wrote: >>> > > >>> > > > I use trunk, but it depends on how close to the bleeding edge you >>> > > > are comfortable with. But like I said, I also tried bootstrapping >>> > > > with 3.9 (both trunk as well as 3.9 sources) and couldn't >>> reproduce. >>> >> >>> >> Hmm, so you're saying neither fails for you, right? >>> > >>> > Yes >>> >>> Okay. Do you mind focusing on the 3.9 branch? It's less of a moving >>> target >>> and lends itself more to figuring out what's failing for me. >>> >>> As soon as I get around to it, I'll send you my full configure and build >>> steps as a shell script. Need to streamline it. >>> >> >> >> >> -- >> Teresa Johnson | Software Engineer | tejohnson at google.com | >> 408-460-2413 >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >> >-- Teresa Johnson | Software Engineer | tejohnson at google.com | 408-460-2413 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161003/039c11f0/attachment.html>
In uint64_t RTDyldMemoryManager::getSymbolAddressInProcess(const std::string &Name) { there is reference to morestack: #if defined(__i386__) || defined(__x86_64__) // __morestack lives in libgcc, a static library. if (&__morestack && Name == "__morestack") return (uint64_t)&__morestack; #endif #endif // __linux__ && __GLIBC__ On Mon, Oct 3, 2016 at 3:32 PM, Teresa Johnson <tejohnson at google.com> wrote:> > > On Mon, Oct 3, 2016 at 2:59 PM, Xinliang David Li <xinliangli at gmail.com> > wrote: > >> Is -fsplit-stack option used anywhere? My wild guess is that with ld.bfd, >> the thinLTO link for the DSO does not bring in morestack.o from libgcc.a, >> but the hidden symbol is defined in lldb binary. >> > > AFAICT, no - I had done "ninja -v" so I have all of the intermediate build > commands, and it doesn't show up in that. > > I'll have to do some more digging to figure out why it is referenced from > liblldb.so in the ld.bfd case and not when using ld.gold > > Teresa > > David >> >> On Mon, Oct 3, 2016 at 1:54 PM, Teresa Johnson via llvm-dev < >> llvm-dev at lists.llvm.org> wrote: >> >>> Aha - finally reproduced! The difference is using ld.bfd not ld.gold. >>> With that I get the same failure (using 3.9 to build 3.9 sources): >>> >>> /usr/local/google/home/tejohnson/binutils_build/install/bin/ld: >>> bin/lldb-3.9.1: hidden symbol `__morestack' in >>> /usr/lib/gcc/x86_64-linux-gnu/4.8/libgcc.a(morestack.o) is referenced >>> by DSO >>> /usr/local/google/home/tejohnson/binutils_build/install/bin/ld: final >>> link failed: Bad value >>> clang-3.9: error: linker command failed with exit code 1 (use -v to see >>> invocation) >>> ninja: build stopped: subcommand failed. >>> >>> I am not sure what the official support story is for LLVMgold.so and >>> ld.bfd. As mentioned earlier, the LLVM site indicates it should use the >>> gold linker. Can you use that while I try to figure out whether this is >>> something that should be supported/working? >>> >>> Thanks, >>> Teresa >>> >>> On Mon, Oct 3, 2016 at 9:56 AM, Carsten Mattner < >>> carstenmattner at gmail.com> wrote: >>> >>>> On Mon, Oct 3, 2016 at 3:50 PM, Teresa Johnson <tejohnson at google.com> >>>> wrote: >>>> > >>>> > On Sun, Oct 2, 2016 at 4:02 AM, Carsten Mattner < >>>> carstenmattner at gmail.com> wrote: >>>> >> >>>> >> On Sun, Oct 2, 2016 at 6:41 AM, Teresa Johnson <tejohnson at google.com> >>>> wrote: >>>> > > >>>> > > > I use trunk, but it depends on how close to the bleeding edge you >>>> > > > are comfortable with. But like I said, I also tried bootstrapping >>>> > > > with 3.9 (both trunk as well as 3.9 sources) and couldn't >>>> reproduce. >>>> >> >>>> >> Hmm, so you're saying neither fails for you, right? >>>> > >>>> > Yes >>>> >>>> Okay. Do you mind focusing on the 3.9 branch? It's less of a moving >>>> target >>>> and lends itself more to figuring out what's failing for me. >>>> >>>> As soon as I get around to it, I'll send you my full configure and build >>>> steps as a shell script. Need to streamline it. >>>> >>> >>> >>> >>> -- >>> Teresa Johnson | Software Engineer | tejohnson at google.com | >>> 408-460-2413 >>> >>> _______________________________________________ >>> LLVM Developers mailing list >>> llvm-dev at lists.llvm.org >>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >>> >>> >> > > > -- > Teresa Johnson | Software Engineer | tejohnson at google.com | > 408-460-2413 >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161003/1e4a8f6b/attachment.html>