Subject: Modular X11 (or GCC or something else) bug
To: None <,>
From: Vincent <>
List: tech-pkg
Date: 02/26/2007 22:13:47
Hi there,

on my old Celeron box, that I updated today to 4.99.12 with a fresh 
userland and kernel, I stumbling once more on a old "chap" error, while 
upgrading to modular_xorg 1.2.0:

In function `__i686.get_pc_thunk.bx':
: multiple definition of `__i686.get_pc_thunk.bx'
/usr/lib/crt0.o(.gnu.linkonce.t.__i686.get_pc_thunk.bx+0x0): first 
defined here

It appears that compiling that i386_video.c (or any .c file) with the 
-fPIC flag attaches that __i686.get_pc_thunk.bx which ends up as a 
normal 'T' symbol as nm reveals, whereas it should (maybe?) be local or 
at least 'weak' or be part of a 'gnu.linkonce.t' section like in crt0.o.

For reference, this is the assembler code inserted by -fPIC:


.globl __i686.get_pc_thunk.bx
         .hidden __i686.get_pc_thunk.bx
         .type   __i686.get_pc_thunk.bx, @function
         movl    (%esp), %ebx

What should I do?