This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hello! When building glibc for i586-pc-gnu, I hit the following problem. If sysdeps/i386/i686/memcmp.S isn't used (as in a i586 compilation), __i686.get_pc_thunk.bx will be undefined, resulting in a compilation error in the new TLS descriptors code (Alexandre Oliva). The following bit of code is duplicated from sysdeps/i386/sysdep.h's SETUP_PIC_REG macro definition. It is also defined in sysdeps/i386/i686/memcmp.S, but only used in the i686 case, as already said. Perhaps it should be put into a more general place? Why the __i686 prefix? And why don't other architectures see this problem for i586, oder do they? Any reading pointers welcome. 2008-11-24 Thomas Schwinge <tschwinge@gnu.org> * sysdeps/i386/d-tlsdesc.S (__i686.get_pc_thunk.bx): New definition, if not already defined. diff --git a/sysdeps/i386/dl-tlsdesc.S b/sysdeps/i386/dl-tlsdesc.S index db5005d..a78f332 100644 --- a/sysdeps/i386/dl-tlsdesc.S +++ b/sysdeps/i386/dl-tlsdesc.S @@ -135,6 +135,18 @@ _dl_tlsdesc_dynamic: jmp .Lret cfi_endproc .size _dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic + + .ifndef __i686.get_pc_thunk.bx; + .section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits; + .globl __i686.get_pc_thunk.bx; + .hidden __i686.get_pc_thunk.bx; + .type __i686.get_pc_thunk.bx,@function; +__i686.get_pc_thunk.bx: + movl (%esp), %ebx; + ret; + .size __i686.get_pc_thunk.bx, . - __i686.get_pc_thunk.bx; + .previous; + .endif; #endif /* SHARED */ /* This function is a wrapper for a lazy resolver for TLS_DESC Regards, Thomas
Attachment:
signature.asc
Description: Digital signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |