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

Bug#750996: eglibc FTBFS on Alpha: malloc/malloc.os build failure and testsuite failures.



On Tue, Jun 10, 2014 at 10:08:24PM +0200, Aurelien Jarno wrote:
> On Tue, Jun 10, 2014 at 09:45:30PM +0200, Mark Wielaard wrote:
> > On Tue, 2014-06-10 at 21:25 +0200, Aurelien Jarno wrote:
> > > | Note that the asm in question comes from system tap, which has not been
> > > | ported to alpha.  So you're probably better off disabling that in your
> > > | (e)glibc build too.
> > 
> > I asked Richard and he said that mainline GCC now allows the "i"
> > constraint with a symbol, with an asm. So it shouldn't produce an error.
> > What error are you seeing?
> > 
> > stap might not know how to interpret such SDT ELF notes. Since systemtap
> > is not known to work on alpha (I don't know for other SDT consumers like
> > gdb and perf). But that would be independent of building with sys/sdt.h.
> > So unless I misunderstood him things should compile fine, even if you
> > decided to keep sys/sdt.h enabled for the glibc build on alpha.
> > 
> > Of course, if none of the SDT consumers are known to work on alpha then
> > having them might just be a noop and it should also be fine to disable
> > them on that platform if you wish. But I don't think that is necessary.
> 
> I don't have access to an alpha machine. Michael, could you please
> confirm that the patch from PR61336 does remove the ICE, but in addition
> allow the file to be compiled?

I found a moment earlier today to schedule a gcc build with the patch from
PR61336 and that has completed.

The file (preprocessed source of malloc/malloc.c from glibc with systemtap
headers included) which I have just reconfirmed generates an ICE with
gcc-4.8.3-2 like so:

gcc-4.8 /tmp/ccDghSDC.c -c -std=gnu99 -fgnu89-inline  -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -pipe -Wstrict-prototypes -mlong-double-128 -mieee -mfp-rounding-mode=d  -fpic
malloc.c: In function ‘__libc_mallopt’:
malloc.c:4830:1: internal compiler error: in print_operand_address, at config/alpha/alpha.c:5454


now successfully compiles with gcc with the patch from PR61336, like so:


/home/mjc/toolchain/gcc-build/./gcc/xgcc -B/home/mjc/toolchain/gcc-build/./gcc/ /tmp/ccDghSDC.c -c -std=gnu99 -fgnu89-inline  -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants -frounding-math -g -pipe -Wstrict-prototypes -mlong-double-128 -mieee -mfp-rounding-mode=d  -fpic
In file included from malloc.c:1875:0:
arena.c: In function ‘ptmalloc_unlock_all2’:
arena.c:303:33: warning: right-hand operand of comma expression has no effect [-Wunused-value]
arena.c:313:25: warning: right-hand operand of comma expression has no effect [-Wunused-value]
In file included from malloc.c:1875:0:
arena.c: In function ‘_int_new_arena’:
arena.c:768:24: warning: right-hand operand of comma expression has no effect [-Wunused-value]


Seems I misunderstood RTH's commit comment; I saw the "Use
output_operand_lossage" bit and thought it meant that it would error out,
but now looking at the patch I see that is only for the default case of
the switch, not the bit handling the operand of the inline asm.

Aurelien: I guess I should file bugs against gcc-4.8 and gcc-4.9 to get
that fix into Debian's gcc as the commit does not seem to have been
backported into the upstream 4.8 and 4.9 branches.

Cheers
Michael.


Reply to: