* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
@ 2004-02-11 9:22 Joel Soete
2004-02-11 15:32 ` Joel Soete
0 siblings, 1 reply; 21+ messages in thread
From: Joel Soete @ 2004-02-11 9:22 UTC (permalink / raw)
To: Carlos O'Donell; +Cc: John David Anglin, James Morrison, parisc-linux
Hi Carlos,
>The wrong files are being included. What is your configure line?
As I just change gcc compiler, I don't change glibc configure options which
are:
"unset LD_LIBRARY_PATH; unset LD_RUN_PATH; \
export CC=/Develop/parisc-linux/xc/bin
hppa-linux-gcc; \
export CLFAGS="-O2 -g"; export PATH="/Develop/parisc-linux/xc/bin:$PATH";
\
/Develop/parisc-linux/src/glibc/configure --target=hppa-linux --host=hppa-linux
\
--build=hppa-linux --prefix=/opt/palinux-3.5.0/hppa-linux --without-cv \
--disable-profile --enable-hacker-mode --enable-add-ons=linuxthreads \
--with-headers=/Develop/parisc-linux/src/linux/include
"
hmm I have a look by getting an objdump of elf/dl-symaddr.o (as hppa/dl-symaddr.c
include hppa/dl-machine.h) but I don't find any set_dp? (still have to have
a look with gcc-3.3 for comparison)
Cheers,
Joel
-------------------------------------------------------------------------
Tiscali ADSL: 12 mois à 29,50 /mois! L'Internet rapide, c'est pour tout
le monde.
http://reg.tiscali.be/default.asp?lg=fr
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-11 9:22 [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb Joel Soete
@ 2004-02-11 15:32 ` Joel Soete
2004-02-11 16:27 ` Carlos O'Donell
0 siblings, 1 reply; 21+ messages in thread
From: Joel Soete @ 2004-02-11 15:32 UTC (permalink / raw)
To: Carlos O'Donell; +Cc: John David Anglin, James Morrison, parisc-linux
>-- Original Message --
>Date: Wed, 11 Feb 2004 10:22:24 +0100
>From: "Joel Soete" <soete.joel@tiscali.be>
>Subject: Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
>To: "Carlos O'Donell" <carlos@baldric.uwo.ca>
>Cc: "James Morrison" <ja2morri@csclub.uwaterloo.ca>,
> parisc-linux@lists.parisc-linux.org,
> "John David Anglin" <dave@hiauly1.hia.nrc.ca>
>
>
>Hi Carlos,
>
>
>The wrong files are being included. What is your configure line?
>As I just change gcc compiler, I don't change glibc configure options which
are:
"unset LD_LIBRARY_PATH; unset LD_RUN_PATH; \
export CC=/Develop/parisc-linux/xc/bin/hppa-linux-gcc; \
export CLFAGS="-O2 -g"; export PATH="/Develop/parisc-linux/xc/bin:$PATH";
\
/Develop/parisc-linux/src/glibc/configure --target=hppa-linux \
--host=hppa-linux --build=hppa-linux \
--prefix=/opt/palinux-3.5.0/hppa-linux --without-cvs \
--disable-profile --enable-hacker-mode --enable-add-ons=linuxthreads \
--with-headers=/Develop/parisc-linux/src/linux/include
"
>
[snip] (still have to have a look with gcc-3.3 for comparison)
>
with same glibc cvs src + your patch and gcc-3.3, no pb
but always same pb with gcc-snapshot (aka 3.5).
I find an interesting differnce between glibc config.h:
--- gcc-3.5.0//glibc/config.h 2004-02-11 15:07:53.667245536 +0100
+++ gcc-3.3.3//glibc/config.h 2004-02-11 15:26:00.256058928 +0100
@@ -104,7 +104,7 @@
/* Define if __asm () on built-in function's prototype causes redirection
of
the builtin. */
-#define HAVE_BUILTIN_REDIRECTION 1
+/* #undef HAVE_BUILTIN_REDIRECTION */
/* Define if the __thread keyword is supported. */
/* #undef HAVE___THREAD */
Where should look for to attempt to fix my pb?
Thanks in advance,
Joel
-------------------------------------------------------------------------
Tiscali ADSL: 12 mois à 29,50 /mois! L'Internet rapide, c'est pour tout
le monde.
http://reg.tiscali.be/default.asp?lg=fr
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-11 15:32 ` Joel Soete
@ 2004-02-11 16:27 ` Carlos O'Donell
2004-02-11 16:50 ` Joel Soete
2004-02-13 14:35 ` Joel Soete
0 siblings, 2 replies; 21+ messages in thread
From: Carlos O'Donell @ 2004-02-11 16:27 UTC (permalink / raw)
To: Joel Soete; +Cc: John David Anglin, James Morrison, parisc-linux
> with same glibc cvs src + your patch and gcc-3.3, no pb
> but always same pb with gcc-snapshot (aka 3.5).
>
> I find an interesting differnce between glibc config.h:
> --- gcc-3.5.0//glibc/config.h 2004-02-11 15:07:53.667245536 +0100
> +++ gcc-3.3.3//glibc/config.h 2004-02-11 15:26:00.256058928 +0100
> @@ -104,7 +104,7 @@
>
> /* Define if __asm () on built-in function's prototype causes redirection
> of
> the builtin. */
> -#define HAVE_BUILTIN_REDIRECTION 1
> +/* #undef HAVE_BUILTIN_REDIRECTION */
>
> /* Define if the __thread keyword is supported. */
> /* #undef HAVE___THREAD */
>
> Where should look for to attempt to fix my pb?
Unknown. gcc-3.5 requires some non-trivial changes to code. You really
have to work with the gcc developers here. I tried building kernels with
3.5 but it's too much work right now, I'm sticking with the gcc-3.3
release until 3.5 matures and all the problems are understood. Stop
using gcc-snapshot to compile glibc :)
c.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-11 16:27 ` Carlos O'Donell
@ 2004-02-11 16:50 ` Joel Soete
2004-02-13 14:35 ` Joel Soete
1 sibling, 0 replies; 21+ messages in thread
From: Joel Soete @ 2004-02-11 16:50 UTC (permalink / raw)
To: Carlos O'Donell; +Cc: John David Anglin, James Morrison, parisc-linux
[snip]
> Stop using gcc-snapshot to compile glibc :)
Ok I will do the same.
Thanks for your attention,
Joel
-------------------------------------------------------------------------
Tiscali ADSL: 12 mois à 29,50 /mois! L'Internet rapide, c'est pour tout
le monde.
http://reg.tiscali.be/default.asp?lg=fr
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-11 16:27 ` Carlos O'Donell
2004-02-11 16:50 ` Joel Soete
@ 2004-02-13 14:35 ` Joel Soete
2004-02-13 19:49 ` Carlos O'Donell
1 sibling, 1 reply; 21+ messages in thread
From: Joel Soete @ 2004-02-13 14:35 UTC (permalink / raw)
To: Carlos O'Donell; +Cc: John David Anglin, James Morrison, parisc-linux
Hi Carlos,
I find a better reason why the build of glibc failed with gcc-3.5: here is
the dump of rtld.os (which would contains ref to set_dp):
with gcc-3.3
------------
palx2000:/Develop/parisc-linux/build/glibc# objdump -d ./elf/rtld.os | more
./elf/rtld.os: file format elf32-hppa-linux
Disassembly of section .text:
00000000 <set_dp>:
0: 4b 54 00 48 ldw 24(,r26),r20
4: 0e 88 10 9b ldw 4(,r20),dp
8: e8 40 c0 00 bv r0(rp)
c: 08 1a 02 5c copy r26,ret0
00000010 <_start>:
10: 37 de 00 80 ldo 40(sp),sp
14: 6b d9 3f b1 stw r25,-28(,sp)
18: 6b d8 3f a9 stw r24,-2c(,sp)
1c: ea 60 00 00 b,l 24 <_start+0x14>,r19
20: d6 60 1c 1e depwi 0,31,2,r19
24: 2a 60 00 00 addil 0,r19,%r1
28: 34 3a 00 00 ldo 0(r1),r26
2c: 2a 60 00 00 addil 0,r19,%r1
30: 48 34 00 00 ldw 0(,r1),r20
34: 0a 9a 04 14 sub r26,r20,r20
38: 0f 50 10 b3 ldw,ma 8(,r26),r19
3c: 86 66 20 12 cmpib,=,n 3,r19,4c <_start+0x3c>
40: 8e 60 3f ef cmpib,<>,n 0,r19,3c <_start+0x2c>
44: 0f 50 10 b3 ldw,ma 8(,r26),r19
48: 04 00 00 00 iitlbp r0,(sr0,r0)
4c: 0f 59 10 93 ldw -4(,r26),r19
50: 0a 93 06 13 add r19,r20,r19
54: e8 40 07 f0 b,l 454 <_dl_start>,rp
58: 37 1a 3f f9 ldo -4(r24),r26
========><========
with gcc-3.5
------------
palx4000:/Develop/parisc-linux/build/glibc# objdump -d ./elf/rtld.os | more
./elf/rtld.os: file format elf32-hppa-linux
Disassembly of section .text:
00000000 <_start>:
0: 37 de 00 80 ldo 40(sp),sp
4: 6b d9 3f b1 stw r25,-28(sp)
8: 6b d8 3f a9 stw r24,-2c(sp)
c: ea 60 00 00 b,l 14 <_start+0x14>,r19
10: d6 60 1c 1e depwi 0,31,2,r19
14: 2a 60 00 00 addil 0,r19,%r1
18: 34 3a 00 00 ldo 0(r1),r26
1c: 2a 60 00 00 addil 0,r19,%r1
20: 48 34 00 00 ldw 0(r1),r20
24: 0a 9a 04 14 sub r26,r20,r20
28: 0f 50 10 b3 ldw,ma 8(,r26),r19
2c: 86 66 20 12 cmpib,=,n 3,r19,3c <_start+0x3c>
30: 8e 60 3f ef cmpib,<>,n 0,r19,2c <_start+0x2c>
34: 0f 50 10 b3 ldw,ma 8(,r26),r19
38: 04 00 00 00 iitlbp r0,(sr0,r0)
3c: 0f 59 10 93 ldw -4(,r26),r19
40: 0a 93 06 13 add r19,r20,r19
44: e8 41 02 84 b,l 318c <_dl_start>,rp
48: 37 1a 3f f9 ldo -4(r24),r26
Why ref to <set_dp> is removed by gcc-3.5?
Is there a new optimization in gcc which remove "defined but not used" in
resulting obj?
Should I log a pb near gcc team?
Thanks again,
Joel
-------------------------------------------------------------------------
Tiscali ADSL: 12 mois à 29,50 /mois! L'Internet rapide, c'est pour tout
le monde.
http://reg.tiscali.be/default.asp?lg=fr
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-13 14:35 ` Joel Soete
@ 2004-02-13 19:49 ` Carlos O'Donell
2004-02-14 0:17 ` Grant Grundler
0 siblings, 1 reply; 21+ messages in thread
From: Carlos O'Donell @ 2004-02-13 19:49 UTC (permalink / raw)
To: Joel Soete; +Cc: John David Anglin, James Morrison, parisc-linux
> 00000000 <set_dp>:
> 0: 4b 54 00 48 ldw 24(,r26),r20
> 4: 0e 88 10 9b ldw 4(,r20),dp
> 8: e8 40 c0 00 bv r0(rp)
> c: 08 1a 02 5c copy r26,ret0
>
> Should I log a pb near gcc team?
Aggressive inlining, and inlining mistakes might cause the function to
disapper. Unless you can produce a *small* testcase the gcc team will
not look at the bug. You can't say "glibc doesn't build with gcc-3.5"
... well I guess you can, but nobody will have a clue how to fix the
issue.
Cheers,
Carlos.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-13 19:49 ` Carlos O'Donell
@ 2004-02-14 0:17 ` Grant Grundler
2004-02-14 14:52 ` Joel Soete
2004-02-14 18:23 ` Carlos O'Donell
0 siblings, 2 replies; 21+ messages in thread
From: Grant Grundler @ 2004-02-14 0:17 UTC (permalink / raw)
To: Carlos O'Donell; +Cc: John David Anglin, James Morrison, parisc-linux
On Fri, Feb 13, 2004 at 02:49:08PM -0500, Carlos O'Donell wrote:
> Aggressive inlining, and inlining mistakes might cause the function to
> disapper. Unless you can produce a *small* testcase the gcc team will
> not look at the bug. You can't say "glibc doesn't build with gcc-3.5"
> ... well I guess you can, but nobody will have a clue how to fix the
> issue.
And he should say *something*.
Pointing at the problem is a first step towards fixing it.
Don't wait until you have a "small" test case to point out a problem
since one might never (have time to) find one.
Even though I fix very few bugs these days, I'm grateful for
every bug report.
grant
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-14 0:17 ` Grant Grundler
@ 2004-02-14 14:52 ` Joel Soete
2004-02-14 18:23 ` Carlos O'Donell
1 sibling, 0 replies; 21+ messages in thread
From: Joel Soete @ 2004-02-14 14:52 UTC (permalink / raw)
To: Grant Grundler; +Cc: Carlos O'Donell, parisc-linux, John David Anglin
Grant Grundler wrote:
> On Fri, Feb 13, 2004 at 02:49:08PM -0500, Carlos O'Donell wrote:
>
>>Aggressive inlining, and inlining mistakes might cause the function to
>>disapper. Unless you can produce a *small* testcase the gcc team will
>>not look at the bug. You can't say "glibc doesn't build with gcc-3.5"
>>... well I guess you can, but nobody will have a clue how to fix the
>>issue.
>
I understand, so better try to find a fix myself?
In the mean time, as James find the shmem BUG(), I take a more to time to look for gcc ml archive ;)
And I find on gcc-help a another pb of asm inlining <http://gcc.gnu.org/ml/gcc-help/2004-02/msg00076.html>
and advise of change <http://gcc.gnu.org/ml/gcc-help/2004-02/msg00077.html>.
If I don't reach to find an elegant solution, can I also address some messages on gcc-help ml?
>
> And he should say *something*.
> Pointing at the problem is a first step towards fixing it.
> Don't wait until you have a "small" test case to point out a problem
> since one might never (have time to) find one.
>
> Even though I fix very few bugs these days, I'm grateful for
> every bug report.
>
Thanks to all for advise and attention,
Joel
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-14 0:17 ` Grant Grundler
2004-02-14 14:52 ` Joel Soete
@ 2004-02-14 18:23 ` Carlos O'Donell
2004-02-14 19:29 ` Joel Soete
1 sibling, 1 reply; 21+ messages in thread
From: Carlos O'Donell @ 2004-02-14 18:23 UTC (permalink / raw)
To: Grant Grundler; +Cc: John David Anglin, James Morrison, parisc-linux
> > Aggressive inlining, and inlining mistakes might cause the function to
> > disapper. Unless you can produce a *small* testcase the gcc team will
> > not look at the bug. You can't say "glibc doesn't build with gcc-3.5"
> > ... well I guess you can, but nobody will have a clue how to fix the
> > issue.
>
> And he should say *something*.
> Pointing at the problem is a first step towards fixing it.
> Don't wait until you have a "small" test case to point out a problem
> since one might never (have time to) find one.
>
> Even though I fix very few bugs these days, I'm grateful for
> every bug report.
I was too harsh, sorry for that, you should really submit a bug report
saying that glibc 2.3.3 doesn't build with gcc-3.5 on hppa-linux. It's
the truth, and you don't know why. The best you can do is list the
steps you used to recreate the problem.
Thanks for setting me straight Grant! :)
c.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-14 18:23 ` Carlos O'Donell
@ 2004-02-14 19:29 ` Joel Soete
2004-02-16 17:31 ` Joel Soete
0 siblings, 1 reply; 21+ messages in thread
From: Joel Soete @ 2004-02-14 19:29 UTC (permalink / raw)
To: Carlos O'Donell
Cc: John David Anglin, James Morrison, Grant Grundler, parisc-linux
Carlos O'Donell wrote:
>>>Aggressive inlining, and inlining mistakes might cause the function to
>>>disapper. Unless you can produce a *small* testcase the gcc team will
>>>not look at the bug. You can't say "glibc doesn't build with gcc-3.5"
>>>... well I guess you can, but nobody will have a clue how to fix the
>>>issue.
>>
>>And he should say *something*.
>>Pointing at the problem is a first step towards fixing it.
>>Don't wait until you have a "small" test case to point out a problem
>>since one might never (have time to) find one.
>>
>>Even though I fix very few bugs these days, I'm grateful for
>>every bug report.
>
>
> I was too harsh, sorry for that, you should really submit a bug report
> saying that glibc 2.3.3 doesn't build with gcc-3.5 on hppa-linux. It's
> the truth, and you don't know why. The best you can do is list the
> steps you used to recreate the problem.
>
Ok, I will try to report as much detail as I can.
Thanks for all,
Joel
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-14 19:29 ` Joel Soete
@ 2004-02-16 17:31 ` Joel Soete
2004-02-17 21:10 ` Carlos O'Donell
0 siblings, 1 reply; 21+ messages in thread
From: Joel Soete @ 2004-02-16 17:31 UTC (permalink / raw)
To: Carlos O'Donell
Cc: John David Anglin, James Morrison, Grant Grundler, parisc-linux
> Ok, I will try to report as much detail as I can.
Hi all,
Just in case of some interest interest, here is the pr ref:
<http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14163>
hth,
Joel
----------------------------------------------------------------------------------------
Tiscali ADSL: 19,50 /mois, pendant 3 mois! L'Internet rapide, c'est pour
tout le monde.
http://reg.tiscali.be/default.asp?lg=fr
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-16 17:31 ` Joel Soete
@ 2004-02-17 21:10 ` Carlos O'Donell
2004-02-18 13:16 ` Joel Soete
0 siblings, 1 reply; 21+ messages in thread
From: Carlos O'Donell @ 2004-02-17 21:10 UTC (permalink / raw)
To: Joel Soete
Cc: John David Anglin, James Morrison, Grant Grundler, parisc-linux
On Mon, Feb 16, 2004 at 06:31:41PM +0100, Joel Soete wrote:
> > Ok, I will try to report as much detail as I can.
>
> Hi all,
>
> Just in case of some interest interest, here is the pr ref:
> <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14163>
>
> hth,
> Joel
Joel,
Excellent! Thanks for posting the PR, the person answering the PR is
correct, we should be indicating to gcc that set_dp is being used by
assembly.
I'm building with a fix right now "__attribute__((used))" to warn
gcc-3.5 that it should not remove the function. I hadn't even realized
that it was only being called by assembly, hence gcc-3.5 is doing a
*better* job of removing apparently dead code.
When the build finishes I'll update my glibc patches online.
c.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-17 21:10 ` Carlos O'Donell
@ 2004-02-18 13:16 ` Joel Soete
2004-02-18 13:36 ` Elliott Potter
0 siblings, 1 reply; 21+ messages in thread
From: Joel Soete @ 2004-02-18 13:16 UTC (permalink / raw)
To: Carlos O'Donell
Cc: John David Anglin, James Morrison, Grant Grundler, parisc-linux
[-- Attachment #1: Type: text/plain, Size: 8460 bytes --]
Carlos,
>I'm building with a fix right now "__attribute__((used))" to war
> gcc-3.5 that it should not remove the function. I hadn't even realized
>that it was only being called by assembly, hence gcc-3.5 is doing a
>*better* job of removing apparently dead code.
>
>When the build finishes I'll update my glibc patches online
Ah :)
So you would certainly need some more hack because of lvalue casting.
Here are some one which could already help you:
--- glibc-2.3.3-20040212/iconv/gconv_simple.c 2004-02-07 17:27:50.000000000
+0100
+++ glibc-2.3.3-20040209/iconv/gconv_simple.c 2004-02-09 18:44:41.217390320
+0100
@@ -453,9 +453,11 @@
#if __BYTE_ORDER == __BIG_ENDIAN
/* Sigh, we have to do some real work. */
size_t cnt;
+ uint32_t *outptr32 = (uint32_t *) outptr;
for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
- *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
+ *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
+ outptr = (unsigned char *) outptr32;
*inptrp = inptr;
*outptrp = outptr;
=========><=========
I already submitted it and accepted by its maintainer (as it is just a complement
to his job) but not yet ci.
=========><=========
--- glibc-2.3.3-20040212/elf/dl-load.c 2004-02-09 08:03:48.000000000 +0100
+++ glibc-2.3.3-20040209/elf/dl-load.c 2004-02-10 16:32:53.250787488 +0100
@@ -1226,9 +1226,13 @@
(header->e_phnum * sizeof (ElfW(Phdr))));
l->l_phdr_allocated = 1;
}
- else
+ else {
/* Adjust the PT_PHDR value by the runtime load address. */
- (ElfW(Addr)) l->l_phdr += l->l_addr;
+ /* (ElfW(Addr)) l->l_phdr += l->l_addr; */
+ ElfW(Addr) *tmpp = (ElfW(Addr) *) l->l_phdr;
+ tmpp += l->l_addr;
+ l->l_phdr = (ElfW(Phdr) *) tmpp;
+ }
}
#ifdef USE_TLS
@@ -1253,8 +1257,12 @@
goto call_lose;
}
}
- else
- (ElfW(Addr)) l->l_ld += l->l_addr;
+ else {
+ /* (ElfW(Addr)) l->l_ld += l->l_addr; */
+ ElfW(Addr) *tmpp = (ElfW(Addr) *) l->l_phdr;
+ tmpp += l->l_addr;
+ l->l_phdr = (ElfW(Phdr) *) tmpp;
+ }
l->l_entry += l->l_addr;
=========><=========
--- glibc-2.3.3-20040212/sunrpc/rpc/xdr.h 2002-12-16 03:05:49.000000000 +0100
+++ glibc-2.3.3-20040209/sunrpc/rpc/xdr.h 2004-02-10 11:43:02.022656032 +0100
@@ -263,9 +263,19 @@
* in the RPC code will not work on 64bit Solaris platforms !
*/
#define IXDR_GET_LONG(buf) \
- ((long)ntohl((u_long)*__extension__((u_int32_t*)(buf))++))
+ ({ \
+ long l; \
+ u_int32_t *buf_u32 = (u_int32_t *) buf; \
+ l = ((long)ntohl((u_long)*__extension__(buf_u32)++)); \
+ buf = (__typeof__(*buf) *) buf_u32; \
+ l; \
+ })
#define IXDR_PUT_LONG(buf, v) \
- (*__extension__((u_int32_t*)(buf))++ = (long)htonl((u_long)(v)))
+ do { \
+ u_int32_t *buf_u32 = (u_int32_t *) buf; \
+ (*__extension__(buf_u32)++ = (long)htonl((u_long)(v))); \
+ buf = (__typeof__(*buf) *) buf_u32; \
+ } while (0)
#define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf))
#define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG(buf, (long)(v))
=========><=========
But this one is just a very ugly (just quick and dirty :( )
but also:
--- glibc/iconvdata/euc-jisx0213.c.orig 2004-02-18 12:07:32.723703576 +0100
+++ glibc/iconvdata/euc-jisx0213.c 2004-02-18 12:10:13.832211360 +0100
@@ -83,7 +83,9 @@
if (__builtin_expect (outbuf + 4 <= outend, 1)) \
{ \
/* Write out the last character. */ \
- *((uint32_t *) outbuf)++ = data->__statep->__count >> 3; \
+ uint32_t *outptr32 = (uint32_t *) outbuf; \
+ *outptr32++ = data->__statep->__count >> 3; \
+ outbuf = (unsigned char *) outptr32; \
data->__statep->__count = 0; \
} \
else \
--- glibc/iconvdata/iso-2022-cn-ext.c.orig 2004-02-18 11:13:48.000000000
+0100
+++ glibc/iconvdata/iso-2022-cn-ext.c 2004-02-18 11:21:56.511671032 +0100
@@ -171,6 +171,7 @@
#define BODY \
{ \
uint32_t ch = *inptr; \
+ uint32_t *outptr32 = (uint32_t *) outptr; \
\
/* This is a 7bit character set, disallow all 8bit characters. */
\
if (ch > 0x7f) \
@@ -377,7 +378,8 @@
} \
} \
\
- *((uint32_t *) outptr)++ = ch; \
+ *outptr32++ = ch; \
+ outptr = (unsigned char *) outptr32; \
}
#define EXTRA_LOOP_DECLS , int *setp
#define INIT_PARAMS int set = (*setp >> 3) & CURRENT_MASK; \
--- glibc/iconvdata/shift_jisx0213.c.orig 2004-02-18 12:15:21.953369824 +0100
+++ glibc/iconvdata/shift_jisx0213.c 2004-02-18 12:16:30.127005856 +0100
@@ -83,7 +83,9 @@
if (__builtin_expect (outbuf + 4 <= outend, 1)) \
{ \
/* Write out the last character. */ \
- *((uint32_t *) outbuf)++ = data->__statep->__count >> 3; \
+ uint32_t *outptr32 = (uint32_t *) outbuf; \
+ *outptr32++ = data->__statep->__count >> 3; \
+ outbuf = (unsigned char *) outptr32; \
data->__statep->__count = 0; \
} \
else \
--- glibc/iconvdata/tcvn5712-1.c.orig 2004-02-18 11:18:22.027277616 +0100
+++ glibc/iconvdata/tcvn5712-1.c 2004-02-18 11:54:17.527591760 +0100
@@ -68,7 +68,9 @@
if (__builtin_expect (outbuf + 4 <= outend, 1)) \
{ \
/* Write out the last character. */ \
- *((uint32_t *) outbuf)++ = data->__statep->__count >> 3; \
+ uint32_t *outptr32 = (uint32_t *) outbuf; \
+ *outptr32++ = data->__statep->__count >> 3; \
+ outbuf = (unsigned char *) outptr32; \
data->__statep->__count = 0; \
} \
else \
--- glibc/iconvdata/tscii.c.orig 2004-02-18 12:23:37.289067352 +0100
+++ glibc/iconvdata/tscii.c 2004-02-18 12:24:25.417750680 +0100
@@ -98,7 +98,9 @@
break; \
} \
/* Write out the pending character. */ \
- *((uint32_t *) outbuf)++ = data->__statep->__count >> 8; \
+ uint32_t *outptr32 = (uint32_t *) outbuf; \
+ *outptr32++ = data->__statep->__count >> 8; \
+ outbuf = (unsigned char *) outptr32; \
/* Retrieve the successor state. */ \
data->__statep->__count = \
tscii_next_state[(data->__statep->__count >> 4) & 0x0f]; \
=========><=========
But now I need more to try to complete job because:
make[2]: *** [/Develop/parisc-linux/build/glibc/sunrpc/xbootparam_prot.stmp]
Segmentation fault
And dmesg saying:
do_page_fault() pid=6547 command='ld.so.1' type=15 address=0x0016b690
vm_start = 0x00033000, vm_end = 0x00034000
YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
PSW: 00000000000001000000111100001111 Not tainted
r00-03 0000000000000000 000000004102b6fc 000000004100721f 00000000faf02040
r04-07 000000004102b6fc 00000000400002b8 00000000faf02158 00000000faf01d8c
r08-11 0000000040170000 0000000000170e60 000000004016fd98 00000000faf01dc0
r12-15 0000000040171e60 0000000000000002 00000000faf02128 ffffffffffffffff
r16-19 00000000faf02180 0000000000000003 0000000000000004 000000004102b6fc
r20-23 000000004102bd80 0000000000000008 000000000016b690 0000000040000000
r24-27 000000000016b690 0000000000001e60 0000000000000003 00000000000c97f0
r28-31 0000000040001000 0000000000000000 00000000faf02180 0000000041013fc7
sr0-3 0000000000003580 0000000000003580 0000000000000000 0000000000003580
sr4-7 0000000000003580 0000000000003580 0000000000003580 0000000000003580
IASQ: 0000000000003580 0000000000003580 IAOQ: 0000000041007293 0000000041007297
IIR: 0ec01095 ISR: 0000000000003580 IOR: 000000000016b690
CPU: 8 CR30: 000000003a038000 CR31: 00000000104a4000
ORIG_R28: 0000000040170000
IAOQ[0]: 0x41007293
IAOQ[1]: 0x41007297
RP(r2): 0x4100721f
But I need first to reboot with a new kernel (the present one was build with
gcc-hppa64-3.3 :( ).
Then get the very last gcc and glibc cvs and restart the scipt :)
hth,
Joel
PS: I also join diff as files because of bad wraping of my webmail interface.
----------------------------------------------------------------------------------------
Tiscali ADSL: 19,50 /mois, pendant 3 mois! L'Internet rapide, c'est pour
tout le monde.
http://reg.tiscali.be/default.asp?lg=fr
[-- Attachment #2: GLibC-diff --]
[-- Type: application/octet-stream, Size: 2427 bytes --]
--- glibc-2.3.3-20040212/elf/dl-load.c 2004-02-09 08:03:48.000000000 +0100
+++ glibc-2.3.3-20040209/elf/dl-load.c 2004-02-10 16:32:53.250787488 +0100
@@ -1226,9 +1226,13 @@
(header->e_phnum * sizeof (ElfW(Phdr))));
l->l_phdr_allocated = 1;
}
- else
+ else {
/* Adjust the PT_PHDR value by the runtime load address. */
- (ElfW(Addr)) l->l_phdr += l->l_addr;
+ /* (ElfW(Addr)) l->l_phdr += l->l_addr; */
+ ElfW(Addr) *tmpp = (ElfW(Addr) *) l->l_phdr;
+ tmpp += l->l_addr;
+ l->l_phdr = (ElfW(Phdr) *) tmpp;
+ }
}
#ifdef USE_TLS
@@ -1253,8 +1257,12 @@
goto call_lose;
}
}
- else
- (ElfW(Addr)) l->l_ld += l->l_addr;
+ else {
+ /* (ElfW(Addr)) l->l_ld += l->l_addr; */
+ ElfW(Addr) *tmpp = (ElfW(Addr) *) l->l_phdr;
+ tmpp += l->l_addr;
+ l->l_phdr = (ElfW(Phdr) *) tmpp;
+ }
l->l_entry += l->l_addr;
--- glibc-2.3.3-20040212/sunrpc/rpc/xdr.h 2002-12-16 03:05:49.000000000 +0100
+++ glibc-2.3.3-20040209/sunrpc/rpc/xdr.h 2004-02-10 11:43:02.022656032 +0100
@@ -263,9 +263,19 @@
* in the RPC code will not work on 64bit Solaris platforms !
*/
#define IXDR_GET_LONG(buf) \
- ((long)ntohl((u_long)*__extension__((u_int32_t*)(buf))++))
+ ({ \
+ long l; \
+ u_int32_t *buf_u32 = (u_int32_t *) buf; \
+ l = ((long)ntohl((u_long)*__extension__(buf_u32)++)); \
+ buf = (__typeof__(*buf) *) buf_u32; \
+ l; \
+ })
#define IXDR_PUT_LONG(buf, v) \
- (*__extension__((u_int32_t*)(buf))++ = (long)htonl((u_long)(v)))
+ do { \
+ u_int32_t *buf_u32 = (u_int32_t *) buf; \
+ (*__extension__(buf_u32)++ = (long)htonl((u_long)(v))); \
+ buf = (__typeof__(*buf) *) buf_u32; \
+ } while (0)
#define IXDR_GET_U_LONG(buf) ((u_long)IXDR_GET_LONG(buf))
#define IXDR_PUT_U_LONG(buf, v) IXDR_PUT_LONG(buf, (long)(v))
--- glibc-2.3.3-20040212/iconv/gconv_simple.c 2004-02-07 17:27:50.000000000 +0100
+++ glibc-2.3.3-20040209/iconv/gconv_simple.c 2004-02-09 18:44:41.217390320 +0100
@@ -453,9 +453,11 @@
#if __BYTE_ORDER == __BIG_ENDIAN
/* Sigh, we have to do some real work. */
size_t cnt;
+ uint32_t *outptr32 = (uint32_t *) outptr;
for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
- *((uint32_t *) outptr)++ = bswap_32 (*(const uint32_t *) inptr);
+ *outptr32++ = bswap_32 (*(const uint32_t *) inptr);
+ outptr = (unsigned char *) outptr32;
*inptrp = inptr;
*outptrp = outptr;
[-- Attachment #3: GLibC-diff2 --]
[-- Type: application/octet-stream, Size: 3382 bytes --]
--- glibc/iconvdata/euc-jisx0213.c.orig 2004-02-18 12:07:32.723703576 +0100
+++ glibc/iconvdata/euc-jisx0213.c 2004-02-18 12:10:13.832211360 +0100
@@ -83,7 +83,9 @@
if (__builtin_expect (outbuf + 4 <= outend, 1)) \
{ \
/* Write out the last character. */ \
- *((uint32_t *) outbuf)++ = data->__statep->__count >> 3; \
+ uint32_t *outptr32 = (uint32_t *) outbuf; \
+ *outptr32++ = data->__statep->__count >> 3; \
+ outbuf = (unsigned char *) outptr32; \
data->__statep->__count = 0; \
} \
else \
--- glibc/iconvdata/iso-2022-cn-ext.c.orig 2004-02-18 11:13:48.000000000 +0100
+++ glibc/iconvdata/iso-2022-cn-ext.c 2004-02-18 11:21:56.511671032 +0100
@@ -171,6 +171,7 @@
#define BODY \
{ \
uint32_t ch = *inptr; \
+ uint32_t *outptr32 = (uint32_t *) outptr; \
\
/* This is a 7bit character set, disallow all 8bit characters. */ \
if (ch > 0x7f) \
@@ -377,7 +378,8 @@
} \
} \
\
- *((uint32_t *) outptr)++ = ch; \
+ *outptr32++ = ch; \
+ outptr = (unsigned char *) outptr32; \
}
#define EXTRA_LOOP_DECLS , int *setp
#define INIT_PARAMS int set = (*setp >> 3) & CURRENT_MASK; \
--- glibc/iconvdata/shift_jisx0213.c.orig 2004-02-18 12:15:21.953369824 +0100
+++ glibc/iconvdata/shift_jisx0213.c 2004-02-18 12:16:30.127005856 +0100
@@ -83,7 +83,9 @@
if (__builtin_expect (outbuf + 4 <= outend, 1)) \
{ \
/* Write out the last character. */ \
- *((uint32_t *) outbuf)++ = data->__statep->__count >> 3; \
+ uint32_t *outptr32 = (uint32_t *) outbuf; \
+ *outptr32++ = data->__statep->__count >> 3; \
+ outbuf = (unsigned char *) outptr32; \
data->__statep->__count = 0; \
} \
else \
--- glibc/iconvdata/tcvn5712-1.c.orig 2004-02-18 11:18:22.027277616 +0100
+++ glibc/iconvdata/tcvn5712-1.c 2004-02-18 11:54:17.527591760 +0100
@@ -68,7 +68,9 @@
if (__builtin_expect (outbuf + 4 <= outend, 1)) \
{ \
/* Write out the last character. */ \
- *((uint32_t *) outbuf)++ = data->__statep->__count >> 3; \
+ uint32_t *outptr32 = (uint32_t *) outbuf; \
+ *outptr32++ = data->__statep->__count >> 3; \
+ outbuf = (unsigned char *) outptr32; \
data->__statep->__count = 0; \
} \
else \
--- glibc/iconvdata/tscii.c.orig 2004-02-18 12:23:37.289067352 +0100
+++ glibc/iconvdata/tscii.c 2004-02-18 12:24:25.417750680 +0100
@@ -98,7 +98,9 @@
break; \
} \
/* Write out the pending character. */ \
- *((uint32_t *) outbuf)++ = data->__statep->__count >> 8; \
+ uint32_t *outptr32 = (uint32_t *) outbuf; \
+ *outptr32++ = data->__statep->__count >> 8; \
+ outbuf = (unsigned char *) outptr32; \
/* Retrieve the successor state. */ \
data->__statep->__count = \
tscii_next_state[(data->__statep->__count >> 4) & 0x0f]; \
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-18 13:16 ` Joel Soete
@ 2004-02-18 13:36 ` Elliott Potter
2004-02-18 14:42 ` Joel Soete
2004-02-18 16:39 ` Carlos O'Donell
0 siblings, 2 replies; 21+ messages in thread
From: Elliott Potter @ 2004-02-18 13:36 UTC (permalink / raw)
To: Joel Soete
Cc: Carlos O'Donell, James Morrison, Grant Grundler, parisc-linux,
John David Anglin
On Wed, 18 Feb 2004, Joel Soete wrote:
> Carlos,
> [...]
> But now I need more to try to complete job because:
> make[2]: *** [/Develop/parisc-linux/build/glibc/sunrpc/xbootparam_prot.stmp]
>
> Segmentation fault
>
> And dmesg saying:
>
> do_page_fault() pid=6547 command='ld.so.1' type=15 address=0x0016b690
> vm_start = 0x00033000, vm_end = 0x00034000
>
> YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
> PSW: 00000000000001000000111100001111 Not tainted
> r00-03 0000000000000000 000000004102b6fc 000000004100721f 00000000faf02040
> r04-07 000000004102b6fc 00000000400002b8 00000000faf02158 00000000faf01d8c
> r08-11 0000000040170000 0000000000170e60 000000004016fd98 00000000faf01dc0
> r12-15 0000000040171e60 0000000000000002 00000000faf02128 ffffffffffffffff
> r16-19 00000000faf02180 0000000000000003 0000000000000004 000000004102b6fc
> r20-23 000000004102bd80 0000000000000008 000000000016b690 0000000040000000
> r24-27 000000000016b690 0000000000001e60 0000000000000003 00000000000c97f0
> r28-31 0000000040001000 0000000000000000 00000000faf02180 0000000041013fc7
> sr0-3 0000000000003580 0000000000003580 0000000000000000 0000000000003580
> sr4-7 0000000000003580 0000000000003580 0000000000003580 0000000000003580
>
> IASQ: 0000000000003580 0000000000003580 IAOQ: 0000000041007293 0000000041007297
> IIR: 0ec01095 ISR: 0000000000003580 IOR: 000000000016b690
> CPU: 8 CR30: 000000003a038000 CR31: 00000000104a4000
> ORIG_R28: 0000000040170000
> IAOQ[0]: 0x41007293
> IAOQ[1]: 0x41007297
> RP(r2): 0x4100721f
Interesting -- I'm getting a similar crash in a program when it calls
getopt_long() -- this do_page_fault thing. I'm wondering if the two are
somehow related because it's only this one program that crashes, and
only on the line where getopt_long() is called. The output in dmesg:
do_page_fault() pid=30051 command='distmk' type=6 address=0x6bc23fdb
vm_start = 0x401ca000, vm_end = 0x401cb000
YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
PSW: 00000000000001001111111100001111 Not tainted
r00-03 00000000 4004ca40 4002c09f bff04040
r04-07 4004d240 000d6f60 bff001b0 bff0018c
r08-11 00000008 00000008 00000001 bff03748
r12-15 000d8470 000ce5c0 00000000 00000000
r16-19 00000000 000b2248 00000004 000007ec
r20-23 4004d238 80000000 6bc23fd9 00000000
r24-27 bff001b0 4004d714 4004cb40 000cfd40
r28-31 000d6762 7efefeff bff040c0 0009cc8b
sr0-3 00001491 00001491 00000000 00001491
sr4-7 00001491 00001491 00001491 00001491
IASQ: 00001491 00001491 IAOQ: 6bc23fdb 6bc23fdf
IIR: 43ffff80 ISR: 00001491 IOR: 401a1a38
CPU: 0 CR30: 4a360000 CR31: 103f0000
ORIG_R28: 401ca000
IAOQ[0]: 0x6bc23fdb
IAOQ[1]: 0x6bc23fdf
RP(r2): 0x4002c09f
Anyway just a data point.
This is with gcc-3.0.4 and gcc-3.2.3, with kernel 2.4.* and 2.6.2-pa3,
and glibc-2.2.5 (so ... old ...)
--
Elliott
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-18 13:36 ` Elliott Potter
@ 2004-02-18 14:42 ` Joel Soete
2004-02-18 16:39 ` Carlos O'Donell
1 sibling, 0 replies; 21+ messages in thread
From: Joel Soete @ 2004-02-18 14:42 UTC (permalink / raw)
To: Elliott Potter
Cc: Carlos O'Donell, James Morrison, Grant Grundler, parisc-linux,
John David Anglin
Hi Elliot,
>Interesting -- I'm getting a similar crash in a program when it calls
>getopt_long() -- this do_page_fault thing. I'm wondering if the two are
>somehow related because it's only this one program that crashes, and
>only on the line where getopt_long() is called. The output in dmesg:
For the moment I can just confirm that it's not a kernel pb: I just reboot
a 2.6.3-rc4-pa0 built with gcc-hppa64-3.0.4ds3-8 (a N required a 64bits kernel)
and the same Seg fault occurs.
But in my case, as mentioned sw are still in developement, i suspect more
a mistack in my hack ?)
Cheers,
Joel
----------------------------------------------------------------------------------------
Tiscali ADSL: 19,50 /mois, pendant 3 mois! L'Internet rapide, c'est pour
tout le monde.
http://reg.tiscali.be/default.asp?lg=fr
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-18 13:36 ` Elliott Potter
2004-02-18 14:42 ` Joel Soete
@ 2004-02-18 16:39 ` Carlos O'Donell
2004-02-18 17:25 ` Joel Soete
2004-02-21 19:01 ` [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb: followup Joel Soete
1 sibling, 2 replies; 21+ messages in thread
From: Carlos O'Donell @ 2004-02-18 16:39 UTC (permalink / raw)
To: Elliott Potter; +Cc: parisc-linux
> > But now I need more to try to complete job because:
> > make[2]: *** [/Develop/parisc-linux/build/glibc/sunrpc/xbootparam_prot.stmp]
This is the first time that the loader you built is used. If the loader
is in anyway broke, it will *always* die here first. Just remember this
glibc haiku when you are coding:
Loader code is bad.
Dying in sunrpc.
Blame relocations.
:)
> > do_page_fault() pid=6547 command='ld.so.1' type=15 address=0x0016b690
> > vm_start = 0x00033000, vm_end = 0x00034000
> >
> > YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
> > PSW: 00000000000001000000111100001111 Not tainted
> > r00-03 0000000000000000 000000004102b6fc 000000004100721f 00000000faf02040
> > r04-07 000000004102b6fc 00000000400002b8 00000000faf02158 00000000faf01d8c
> > r08-11 0000000040170000 0000000000170e60 000000004016fd98 00000000faf01dc0
> > r12-15 0000000040171e60 0000000000000002 00000000faf02128 ffffffffffffffff
> > r16-19 00000000faf02180 0000000000000003 0000000000000004 000000004102b6fc
> > r20-23 000000004102bd80 0000000000000008 000000000016b690 0000000040000000
> > r24-27 000000000016b690 0000000000001e60 0000000000000003 00000000000c97f0
> > r28-31 0000000040001000 0000000000000000 00000000faf02180 0000000041013fc7
> > sr0-3 0000000000003580 0000000000003580 0000000000000000 0000000000003580
> > sr4-7 0000000000003580 0000000000003580 0000000000003580 0000000000003580
Loader died, return address is in the loader or libc. Stack pointer
looks right. PIC register looks correct. If you had a copy of your
/proc/<pid>/maps then you could decipher where 0x4102b6fc pointed.
> > IASQ: 0000000000003580 0000000000003580 IAOQ: 0000000041007293 0000000041007297
> > IIR: 0ec01095 ISR: 0000000000003580 IOR: 000000000016b690
> > CPU: 8 CR30: 000000003a038000 CR31: 00000000104a4000
> > ORIG_R28: 0000000040170000
> > IAOQ[0]: 0x41007293
> > IAOQ[1]: 0x41007297
> > RP(r2): 0x4100721f
Odd, the insns you are executing are really close to your IAOQ
addresses, so the functions are close together.
> Interesting -- I'm getting a similar crash in a program when it calls
> getopt_long() -- this do_page_fault thing. I'm wondering if the two are
> somehow related because it's only this one program that crashes, and
> only on the line where getopt_long() is called. The output in dmesg:
No relation. The do_page_fault is an attempt to execute code at an
invalid page. In Joel's case the address is garbage, in your case it's
very very very different.
> do_page_fault() pid=30051 command='distmk' type=6 address=0x6bc23fdb
> vm_start = 0x401ca000, vm_end = 0x401cb000
Your's is a very special failure. The faulting address is actually
an instruction sequence "6bc23fd9 == stw rp,-14(,sp)" Which means that
at some point a *real* address was substituted for a function
descriptor, then dereferenced and jumped into. This *only* used to
happen when running static programs that had static lookup functions. I
can't be certain though without knowing more about your program "distmk."
My guess is that it's a statically compiled binary calling dlopen?
> YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
> PSW: 00000000000001001111111100001111 Not tainted
> r00-03 00000000 4004ca40 4002c09f bff04040
> r04-07 4004d240 000d6f60 bff001b0 bff0018c
> r08-11 00000008 00000008 00000001 bff03748
> r12-15 000d8470 000ce5c0 00000000 00000000
> r16-19 00000000 000b2248 00000004 000007ec
> r20-23 4004d238 80000000 6bc23fd9 00000000
> r24-27 bff001b0 4004d714 4004cb40 000cfd40
> r28-31 000d6762 7efefeff bff040c0 0009cc8b
> sr0-3 00001491 00001491 00000000 00001491
> sr4-7 00001491 00001491 00001491 00001491
>
> IASQ: 00001491 00001491 IAOQ: 6bc23fdb 6bc23fdf
> IIR: 43ffff80 ISR: 00001491 IOR: 401a1a38
> CPU: 0 CR30: 4a360000 CR31: 103f0000
> ORIG_R28: 401ca000
> IAOQ[0]: 0x6bc23fdb
> IAOQ[1]: 0x6bc23fdf
> RP(r2): 0x4002c09f
>
> This is with gcc-3.0.4 and gcc-3.2.3, with kernel 2.4.* and 2.6.2-pa3,
> and glibc-2.2.5 (so ... old ...)
Eeek! Upgrade? I've made so many fixes since then... it's not a very
functioning libc.
c.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-18 16:39 ` Carlos O'Donell
@ 2004-02-18 17:25 ` Joel Soete
2004-02-18 18:40 ` Joel Soete
2004-02-21 19:01 ` [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb: followup Joel Soete
1 sibling, 1 reply; 21+ messages in thread
From: Joel Soete @ 2004-02-18 17:25 UTC (permalink / raw)
To: Carlos O'Donell, Elliott Potter; +Cc: parisc-linux
Carlos,
>>> > But now I need more to try to complete job because:
>> > make[2]: *** [/Develop/parisc-linux/build/glibc/sunrpc/xbootparam_prot.stmp]
>
>This is the first time that the loader you built is used. If the loader
>is in anyway broke, it will *always* die here first. Just remember this
>glibc haiku when you are coding:
>
> Loader code is bad.
> Dying in sunrpc.
> Blame relocations.
>
>:)
:)) (I was ignoring what an haiku is but now find it as a very good example)
r00-03 0000000000000000 000000004102b6fc 000000004100721f 00000000faf02040
>[snip] If you had a copy of your
/proc/<pid>/maps then you could decipher where 0x4102b6fc pointed.
First just to be sure: don't you speak better of r02=0x4100721f?
unfortunately when I discover dmesg, the process was already died :(
(I will see howto ?)
> > IASQ: 0000000000003580 0000000000003580 IAOQ: 0000000041007293 0000000041007297
> > IIR: 0ec01095 ISR: 0000000000003580 IO
>: 000000000016b690
> > CPU: 8 CR30: 000000003a038000 CR31: 00000000104a4000
> > ORIG_R28: 0000000040170000
> > IAOQ[0]: 0x41007293
> > IAOQ[1]: 0x41007297
> > RP(r2): 0x4100721f
>Odd, the insns you are executing are really close to
>your IAOQ addresses, so the functions are close together.
Thanks for advise, help and attention,
Joel
----------------------------------------------------------------------------------------
Tiscali ADSL: 19,50 /mois, pendant 3 mois! L'Internet rapide, c'est pour
tout le monde.
http://reg.tiscali.be/default.asp?lg=fr
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb
2004-02-18 17:25 ` Joel Soete
@ 2004-02-18 18:40 ` Joel Soete
0 siblings, 0 replies; 21+ messages in thread
From: Joel Soete @ 2004-02-18 18:40 UTC (permalink / raw)
To: Carlos O'Donell; +Cc: parisc-linux
Carlos,
>>> > But now I need more to try to complete job because:
>> > make[2]: *** [/Develop/parisc-linux/build/glibc/sunrpc/xbootparam_prot.stmp]
>
Just to be more complet here is the full cmd:
CPP='/Develop/parisc-linux/xc/bin/hppa-linux-gcc -E -x c-header' /Develop/parisc-linux/build/glibc/elf/ld.so.1
--library-path /Develop/parisc-linux/build/glibc:/Develop/parisc-linux/build/glibc/math:/Develop/parisc-linux/build/glibc/elf:/Develop/parisc-linux/build/glibc/dlfcn:/Develop/parisc-linux/build/glibc/nss:/Develop/parisc-linux/build/glibc/nis:/Develop/p
arisc-linux/build/glibc/rt:/Develop/parisc-linux/build/glibc/resolv:/Develop/parisc-linux/build/glibc/crypt:/Develop/parisc-linux/build/glibc/linuxthreads
/Develop/parisc-linux/build/glibc/sunrpc/rpcgen -Y ../scripts -c rpcsvc/bootparam_prot.x
-o /Develop/parisc-linux/build/glibc/sunrpc/xbootparam_prot.T
which fault immediately as strace confirm:
execve("/Develop/parisc-linux/build/glibc/elf/ld.so.1", ["/Develop/parisc-linux/build/glibc/elf/ld.so.1",
"--library-path", "/Develop/parisc-linux/build/glibc:/Develop/parisc-linux/build/glibc/math:/Develop/parisc-linux/build/glibc/elf:/Develop/parisc-linux/build/glibc/dlfcn:/Develop/parisc-linux/build/glibc/nss:/Develop/parisc-linux/build/glibc/nis:/Devel
op/parisc-linux/build/glibc/rt:/Develop/parisc-linux/build/glibc/resolv:/Develop/parisc-linux/build/glibc/crypt:/Develop/parisc-linux/build/glibc/linuxthreads",
"/Develop/parisc-linux/build/glibc/sunrpc/rpcgen", "-Y", "../scripts", "-c",
"rpcsvc/bootparam_prot.x", "-o", "/Develop/parisc-linux/build/glibc/sunrpc/xbootparam_prot.T"],
[/* 15 vars */]) = 0
newuname({sys="Linux", node="palx4000", ...}) = 0
brk(0) = 0x4102d000
open("/Develop/parisc-linux/build/glibc/sunrpc/rpcgen", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\3\0\0\0\0\0\0\0\0\0\2\0\17\0\0\0\1\0\1\16"..., 512)
= 512
fstat64(3, {st_mode=0, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x40000000
mmap(0x10000, 77824, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) =
0x10000
mmap(0x32000, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED,
3, 0x12000) = 0x32000
mmap(0x33000, 572, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS,
-1, 0) = 0x33000
close(3) = 0
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/Develop/parisc-linux/build/glibc/PARISC32/libc.so.6", O_RDONLY) =
-1 ENOENT (No such file or directory)
stat64("/Develop/parisc-linux/build/glibc/PARISC32", 0xfaf01548) = -1 ENOENT
(No such file or directory)
open("/Develop/parisc-linux/build/glibc/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\2\1\3\0\0\0\0\0\0\0\0\0\3\0\17\0\0\0\1\0\2\16"..., 512)
= 512
fstat64(3, {st_mode=0, st_size=0, ...}) = 0
mmap(NULL, 1511008, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40001000
mprotect(0x40154000, 122464, PROT_NONE) = 0
mmap(0x40163000, 53248, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED,
3, 0x152000) = 0x40163000
mmap(0x40170000, 7776, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS,
-1, 0) = 0x40170000
close(3) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
I am very fluent in strace langage ( :) ) but I have the filling that libc.so.6
is wrong? What do you think?
Thanks again,
Joel.
PS: I will stopped here and tommorrow will try update all stuff and see ;)
----------------------------------------------------------------------------------------
Tiscali ADSL: 19,50 /mois, pendant 3 mois! L'Internet rapide, c'est pour
tout le monde.
http://reg.tiscali.be/default.asp?lg=fr
^ permalink raw reply [flat|nested] 21+ messages in thread
* [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb: followup
2004-02-18 16:39 ` Carlos O'Donell
2004-02-18 17:25 ` Joel Soete
@ 2004-02-21 19:01 ` Joel Soete
2004-02-22 6:00 ` Carlos O'Donell
1 sibling, 1 reply; 21+ messages in thread
From: Joel Soete @ 2004-02-21 19:01 UTC (permalink / raw)
To: Carlos O'Donell; +Cc: parisc-linux
Carlos,
Carlos O'Donell wrote:
>>>But now I need more to try to complete job because:
>>>make[2]: *** [/Develop/parisc-linux/build/glibc/sunrpc/xbootparam_prot.stmp]
>
>
> This is the first time that the loader you built is used. If the loader
> is in anyway broke, it will *always* die here first. Just remember this
> glibc haiku when you are coding:
>
> Loader code is bad.
> Dying in sunrpc.
> Blame relocations.
>
> :)
>
It takes me some more time because I would test patch by patch with gcc-3.3 if nothing was broken.
But all those patch seems ok with gcc-3.3 (just have to revert it and re-run with make -k check ;) )
That said, I so have on a system (a n4k runing a 64bit 2.6) a ld.so and libc.so build with gcc-3.5 (let me suffix with (3.5) ie:
ld.so(3.5) and libc.so(3.5)). On another system (a b2k the same 64bit 2.6), I build with gcc-3.3.3 a ld.so(3.3) and libc.so(3.3).
The cmd:
CPP='/Develop/parisc-linux/xc/bin/hppa-linux-gcc -E -x c-header' /Develop/parisc-linux/build/glibc/elf/ld.so.1
--library-path
/Develop/parisc-linux/build/glibc:/Develop/parisc-linux/build/glibc/math:/Develop/parisc-linux/build/glibc/elf:/Develop/parisc-linux/build/glibc/dlfcn:/Develop/parisc-linux/build/glibc/nss:/Develop/parisc-linux/build/glibc/nis:/Develop/p
arisc-linux/build/glibc/rt:/Develop/parisc-linux/build/glibc/resolv:/Develop/parisc-linux/build/glibc/crypt:/Develop/parisc-linux/build/glibc/linuxthreads
/Develop/parisc-linux/build/glibc/sunrpc/rpcgen -Y ../scripts -c rpcsvc/bootparam_prot.x
-o /Develop/parisc-linux/build/glibc/sunrpc/xbootparam_prot.T
failled with gcc-3.5
otc ok with gcc-3.3
Now if on the N I replace libc.so(3.5) by libc.so(3.3) the cmd (ie using ld.so(3.5)) always failled
OTC if on the B I replace libc.so(3.3) by libc.so(3.5) the cmd (ie using ld.so(3.3)) works fine.
so it confirms that the loader is broken :(
So I have to figure out what goes wrong in "relocation". Can you help me by pointing out some files and may functions to specialy
analyse :).
Thanks in advance,
Joel
BTW: The previous mentioned patch are (afaik) of general interest (not hppa specific) but would you like that I submit you first
so that you could submit it to glibc maintainers or do you prefer that i manage that myself?
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb: followup
2004-02-21 19:01 ` [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb: followup Joel Soete
@ 2004-02-22 6:00 ` Carlos O'Donell
2004-02-22 16:53 ` John David Anglin
0 siblings, 1 reply; 21+ messages in thread
From: Carlos O'Donell @ 2004-02-22 6:00 UTC (permalink / raw)
To: Joel Soete; +Cc: parisc-linux
On Sat, Feb 21, 2004 at 07:01:39PM +0000, Joel Soete wrote:
> It takes me some more time because I would test patch by patch with gcc-3.3
> if nothing was broken.
> But all those patch seems ok with gcc-3.3 (just have to revert it and
> re-run with make -k check ;) )
Yes, it is a lot of work. The fame will all be yours though.
> So I have to figure out what goes wrong in "relocation". Can you help me by
> pointing out some files and may functions to specialy analyse :).
My haiku was really intended to be a joke. Anything could be wrong with
the loader, you have to run it through gdb to get a usefull trace. Even
then you won't have symbols and you'll have to learn to decode the
address from /proc/self/maps and an 'objdump -d xxxxxx.so'. From there
you can find the offending code, go back to the code and examine if it
does anything odd... perhaps isolate what the code does in a testcase
that gcc-3.5 does incorreclty.
> BTW: The previous mentioned patch are (afaik) of general interest (not hppa
> specific) but would you like that I submit you first so that you could
> submit it to glibc maintainers or do you prefer that i manage that myself?
You should:
a. Make sure that i386 builds with your patches, and passes the
testsuite without regressions.
b. Cleanup the patches, make *sure* your mailer doesn't wrap them, the
previous patches were wrapped and broken.
c. Write a 'Changelog' entry for the changes, and describe why you are
making these changes (e.g. compiling with gcc-3.5). These entries
have a very special format, look closely, and follow the GNU coding
convetions.
d. Submit them separately, with a description, changelog, and inline
patch to the libc-alpha mailing list.
This will be a wonderful learning experience! :)
c.
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb: followup
2004-02-22 6:00 ` Carlos O'Donell
@ 2004-02-22 16:53 ` John David Anglin
0 siblings, 0 replies; 21+ messages in thread
From: John David Anglin @ 2004-02-22 16:53 UTC (permalink / raw)
To: Carlos O'Donell; +Cc: parisc-linux
> c. Write a 'Changelog' entry for the changes, and describe why you are
> making these changes (e.g. compiling with gcc-3.5). These entries
> have a very special format, look closely, and follow the GNU coding
> convetions.
I'm not sure about glibc but in gcc ChangeLog entries only include
a concise list of changes for each function/macro changed. The "why"
goes in your patch submission letter.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2004-02-22 16:53 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-02-11 9:22 [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb Joel Soete
2004-02-11 15:32 ` Joel Soete
2004-02-11 16:27 ` Carlos O'Donell
2004-02-11 16:50 ` Joel Soete
2004-02-13 14:35 ` Joel Soete
2004-02-13 19:49 ` Carlos O'Donell
2004-02-14 0:17 ` Grant Grundler
2004-02-14 14:52 ` Joel Soete
2004-02-14 18:23 ` Carlos O'Donell
2004-02-14 19:29 ` Joel Soete
2004-02-16 17:31 ` Joel Soete
2004-02-17 21:10 ` Carlos O'Donell
2004-02-18 13:16 ` Joel Soete
2004-02-18 13:36 ` Elliott Potter
2004-02-18 14:42 ` Joel Soete
2004-02-18 16:39 ` Carlos O'Donell
2004-02-18 17:25 ` Joel Soete
2004-02-18 18:40 ` Joel Soete
2004-02-21 19:01 ` [parisc-linux] glibc-2.3.3 & gcc-snapshot (3.5.0) pb: followup Joel Soete
2004-02-22 6:00 ` Carlos O'Donell
2004-02-22 16:53 ` John David Anglin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.