From: Richard W. <ri...@no...> - 2016-11-10 08:05:59
|
Keno, On 10.11.2016 02:53, Keno Fischer wrote: > Fixes the following link error: > ``` > /usr/bin/ld: net/built-in.o: relocation R_X86_64_32S against `.text' > can not be used when making a shared object; recompile with -fPIC > ``` > > This is the same definition used on some other architectures. > > Signed-off-by: Keno Fischer <ke...@ju...> > --- > I am not sure this is the correct patch in the context of uml. I believe this > should give the runtime ip, which may be different between runs. It may be > better to use the offset in .text (e.g. by using `pc-__text_start`), which > should be consistent. The problem is ready being solved in a generic way: http://marc.info/?l=linux-kernel&m=147828481602561&w=2 Can you please give this patch a try? Thanks, //richard |
From: Richard W. <ri...@no...> - 2016-11-10 20:14:15
|
Keno, On 10.11.2016 21:10, Keno Fischer wrote: >> The problem is ready being solved in a generic way: >> http://marc.info/?l=linux-kernel&m=147828481602561&w=2 >> >> Can you please give this patch a try? > > No dice. After backing out my patch and applying that one I get: > > /usr/bin/ld: error: net/built-in.o: requires unsupported dynamic reloc > 11; recompile with -fPIC But you applied the whole series, right? Thanks, //richard |
From: Richard W. <ri...@no...> - 2016-11-10 20:19:27
|
Keno, On 10.11.2016 21:14, Keno Fischer wrote: > Yes Can you please reply to Sebastian's patch series and explain him how you trigger that error? I don't have a gcc broken by Debian on my machine right now. > On Thu, Nov 10, 2016 at 3:14 PM, Richard Weinberger <ri...@no...> wrote: >> Keno, >> >> On 10.11.2016 21:10, Keno Fischer wrote: >>>> The problem is ready being solved in a generic way: >>>> http://marc.info/?l=linux-kernel&m=147828481602561&w=2 >>>> >>>> Can you please give this patch a try? >>> >>> No dice. After backing out my patch and applying that one I get: >>> >>> /usr/bin/ld: error: net/built-in.o: requires unsupported dynamic reloc >>> 11; recompile with -fPIC >> >> But you applied the whole series, right? Thanks, //richard |
From: Richard W. <ri...@no...> - 2016-11-11 10:35:09
|
Keno, On 10.11.2016 02:53, Keno Fischer wrote: > Fixes the following link error: > ``` > /usr/bin/ld: net/built-in.o: relocation R_X86_64_32S against `.text' > can not be used when making a shared object; recompile with -fPIC > ``` How and where do you trigger this? I had a chat with Sebastian and we are not 100% sure what is going on. On my freshly installed Debian sid with gcc version 6.2.0 20161109 (Debian 6.2.0-13) UML builds fine except when I set CONFIG_STATIC_LINK=y But then I'm facing a slightly different error: CC init/version.o LD init/built-in.o /usr/bin/ld: init/built-in.o: relocation R_X86_64_PLTOFF64 against STT_GNU_IFUNC symbol `memmove' isn't supported /usr/bin/ld: final link failed: Bad value collect2: error: ld returned 1 exit status Your patch also does not cure this. I'll investigate later into that. > This is the same definition used on some other architectures. > > Signed-off-by: Keno Fischer <ke...@ju...> > --- > I am not sure this is the correct patch in the context of uml. I believe this > should give the runtime ip, which may be different between runs. It may be > better to use the offset in .text (e.g. by using `pc-__text_start`), which > should be consistent. > > arch/x86/um/asm/processor_64.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/um/asm/processor_64.h b/arch/x86/um/asm/processor_64.h > index c3be852..6ca3304 100644 > --- a/arch/x86/um/asm/processor_64.h > +++ b/arch/x86/um/asm/processor_64.h > @@ -32,7 +32,7 @@ static inline void arch_copy_thread(struct arch_thread *from, > } > > #define current_text_addr() \ > - ({ void *pc; __asm__("movq $1f,%0\n1:":"=g" (pc)); pc; }) > + ({ __label__ _l; _l: &&_l; }) > > #define current_sp() ({ void *sp; __asm__("movq %%rsp, %0" : "=r" (sp) : ); sp; }) > #define current_bp() ({ unsigned long bp; __asm__("movq %%rbp, %0" : "=r" (bp) : ); bp; }) Thanks, //richard |
From: Richard W. <ri...@no...> - 2016-11-11 22:07:54
|
On 11.11.2016 22:03, Keno Fischer wrote: > Did you have CONFIG_INET set? I'm attaching my full .config. This is > on vanilla Ubuntu 16.10. Yes, CONFIG_INET is set. Let my try on Ubuntu. ;-\ > I did see the same error when building with `CONFIG_STATIC_LINK=y`. > Note that I also, separately, ran into a linker problem, though I > believe it is unrelated to this patch > (though perhaps is related to the problem you're seeing?): > https://sourceware.org/bugzilla/show_bug.cgi?id=20800. This seems to be an UML<->glibc issue. memmove() is now an ifunc and for whatever reason it does not work with UML. > I'd also be happy to provide you with ssh access to the machine that > I'm seeing this on if that > would be helpful. Okay, let me try myself first. I think I'm able to install Ubuntu. :) Thanks, //richard |
From: Richard W. <ri...@no...> - 2016-11-16 14:36:10
|
Keno, On 16.11.2016 04:45, Keno Fischer wrote: > Just as an FYI, the linker bug has been fixed in binutils. Interesting. Is the same bug also the root cause why a static build of UML does not work? Thanks, //richard |