[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Processed: reassign 179781 to glibc, severity of 179781 is serious, merging 179781 178645



At Thu, 13 Feb 2003 13:43:24 -0800,
Ryan Murray wrote:
> [1  <text/plain; us-ascii (quoted-printable)>]
> On Fri, Feb 14, 2003 at 02:10:59AM +0900, GOTO Masanori wrote:
> > At Thu, 13 Feb 2003 08:48:14 -0600,
> > Debian Bug Tracking System wrote:
> > > Processing commands for control@bugs.debian.org:
> > > 
> > > > reassign 179781 glibc
> > > Bug#179781: dcgui: relocation error: /usr/bin/dcgui: undefined symbol: __fixunsdfdi
> > > Bug#180330: libc6, relocation error (dcgui)
> > > Bug reassigned from package `gcc-3.2' to `glibc'.
> > > 
> > > > severity 179781 serious
> > > Bug#179781: dcgui: relocation error: /usr/bin/dcgui: undefined symbol: __fixunsdfdi
> > > Bug#180330: libc6, relocation error (dcgui)
> > > Severity set to `serious'.
> > > 
> > > > merge 179781 178645
> > > Bug#178645: glibc: needs to export __umoddi3 et al. on sparc
> > > Bug#179781: dcgui: relocation error: /usr/bin/dcgui: undefined symbol: __fixunsdfdi
> > > Mismatch - only Bugs in same state can be merged:
> > > Values for `package' don't match:
> > >  #178645 has `libc6';
> > >  #179781 has `glibc'
> > 
> > I'm sorry, but I still don't understand why #179781 is glibc bug?
> 
> It's the only place we can workaround it easily.  It is the same bug
> as #178645, and we talked about this in IRC.
> 
> > #179781 says that this bug forcuses __fixunsdfdi and __fixunssfdi are
> > appeared as .hidden attribute functions.  Please test below code
> 
> Yes, and the exact same thing happens with #178645.  These are identical bugs,
> with different libgcc symbols.
> 
> > "gcc -S abovecode.c" says there is "__fixunsdfdi .hidden attribute".
> 
> Yes, that's as it should be.

I still wonder why .hidden __fixdfdi (*signed* long long int -> double)
is not appeared, but .hidden __fixunsdfdi (*unsigned* long long int ->
double) is appeared.  Try:

        main()
        {
                unsigned long long a;
		  signed long long c;
                double b;
                a=b;
		c=b;
        }

You can see __fixunsdfdi, but not __fixdfdi.  Apparently __fixdfdi is
expanded, but __fixunsdfdi is not.  I worry about #179781 that the
current gcc-3.2 with the current glibc generate __fixunsdfdi.  I would
like to know is:

 1. Why is __fixunsdfdi appeared, on the contrary why is not __fixdfdi
    appeared
 2. Are there any problems to appear __fixunsdfdi?
 3. libgcc-compat resolves this apprearing __fixunsdfdi? (I don't think so)

> > I heard libgcc-compat for i386 was needed for the current debian-glibc,
> > but is this libgcc-compat patch resolves #179781 __fixunsdfdi .hidden
> > attribute problem?
> 
> It's needed on every arch.
> 
> > Woody gcc-2.95.4 with libc6 2.2.5-11.2 output '.globl __cmpdi2'
> > instead of '.globl __fixunsdfdi', and this symbol is ok to resolve on
> > the current sid debian environment (so we can run such binaries).
> 
> Yes, but this is incorrect, and this bug has been fixed in gcc.  We now
> have to handle transitioning from the old libraries (linktime-available
> symbols in every lib that happens to use them) to the new ones (no
> linktime-available versions).

Ah, I see. 

But, I would like to know is "what package is caused problems without
libgcc-compat patch".  At least, ".globl __cmpdi2" appeared binaries
works fine on sid.

> > Another question is: which symbols should we add for i386 libgcc-compat?
> 
> An archive walk against woody needs to be done on the missing archs to
> see which symbols were leaked by this.

Thanks to Guido and Ryan, I see they're in libgcc and they aren't in
sysdeps/wordsize-32/*.  I wonder why upstream has not been added such
leaked symbols.  If it's critical things, we should submit ASAP.
Or, upstream thinks another way to fix?

> > Please lead/explain to me...
> 
> <neuro> what's happening here is that random-other-library-named-libfoo was built with 2.95, and needs libgcc
> <neuro> the symbols were not marked as hidden there, and you end up with them in the shared lib
> <neuro> when they get recompiled with 3.2, they are correctly hidden
> <neuro> binaries that link against them, however, will have linked with the shared symbol, which has been hidden.
>
> We are putting the compat symbols in glibc, rather than every library that
> might have linked with a libgcc symbol.  All of the merged bugs are caused
> by this problem.  I don't see how you can understand that #178645 is a
> glibc problem, but not #179781.  They are the same problem, with different
> symbols from the same library.

Well, dcgui (#179781) should be fixed with the latest glibc and gcc
environment.  Moreover, if binaries on woody/sarge works well, then I
think we should not add this compat-patch even if sid binaries causes
such unresolved symbol bug.

Sorry my repeatedly question, but I still don't find "what is the real
problem"...  At least in my environment, gtk+ and recompiled dcgui
works fine.

Thanks in advance,
-- gotom



Reply to: