* [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
[not found] ` <15969.1828.456001.122737@gargle.gargle.HOWL>
@ 2003-03-02 4:59 ` Randolph Chung
2003-03-02 5:40 ` John David Anglin
` (7 more replies)
2003-03-02 4:59 ` Randolph Chung
1 sibling, 8 replies; 64+ messages in thread
From: Randolph Chung @ 2003-03-02 4:59 UTC (permalink / raw)
To: Matthias Klose; +Cc: debian-hppa, debian-gcc, parisc-linux
In reference to a message from Matthias Klose, dated Mar 01:
> Matthias Klose writes:
> > AFAIK the transition from 3.2 to 3.3 requires recompilation of C++
> > code due to the changed exception handling (now DWARF2 based). As
> > libstdc++ in 3.2 and 3.2 have the same soname, how to handle it?
> > Currently 3.2 is in unstable only. Would you want to start the
> > recompilation before 3.2 based binaries go to testing?
> >
> > The packaging for 3.3 can be found in the Debian CVS.
>
> You can get test packages from
> http://ftp-master.debian.org/~doko/gcc-3.3/
well.... this is not looking good. after installing these in a freshly
built sarge chroot, all c++ programs stop working (well, i've only tried
two -- apt and fakeroot)
(btw, small packaging detail, but the libstdc++*-dev package above
cannot be installed cleanly because it overwrites things in the current
3.2 package)
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
^ permalink raw reply [flat|nested] 64+ messages in thread
* [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
[not found] ` <15969.1828.456001.122737@gargle.gargle.HOWL>
2003-03-02 4:59 ` [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa Randolph Chung
@ 2003-03-02 4:59 ` Randolph Chung
1 sibling, 0 replies; 64+ messages in thread
From: Randolph Chung @ 2003-03-02 4:59 UTC (permalink / raw)
To: Matthias Klose; +Cc: debian-hppa, debian-gcc, parisc-linux
In reference to a message from Matthias Klose, dated Mar 01:
> Matthias Klose writes:
> > AFAIK the transition from 3.2 to 3.3 requires recompilation of C++
> > code due to the changed exception handling (now DWARF2 based). As
> > libstdc++ in 3.2 and 3.2 have the same soname, how to handle it?
> > Currently 3.2 is in unstable only. Would you want to start the
> > recompilation before 3.2 based binaries go to testing?
> >
> > The packaging for 3.3 can be found in the Debian CVS.
>
> You can get test packages from
> http://ftp-master.debian.org/~doko/gcc-3.3/
well.... this is not looking good. after installing these in a freshly
built sarge chroot, all c++ programs stop working (well, i've only tried
two -- apt and fakeroot)
(btw, small packaging detail, but the libstdc++*-dev package above
cannot be installed cleanly because it overwrites things in the current
3.2 package)
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-02 4:59 ` [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa Randolph Chung
@ 2003-03-02 5:40 ` John David Anglin
2003-03-02 9:24 ` M. Grabert
2003-03-02 9:24 ` M. Grabert
2003-03-02 5:40 ` John David Anglin
` (6 subsequent siblings)
7 siblings, 2 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-02 5:40 UTC (permalink / raw)
To: tausq; +Cc: doko, debian-hppa, debian-gcc, parisc-linux
> In reference to a message from Matthias Klose, dated Mar 01:
> > Matthias Klose writes:
> > > AFAIK the transition from 3.2 to 3.3 requires recompilation of C++
> > > code due to the changed exception handling (now DWARF2 based). As
> > > libstdc++ in 3.2 and 3.2 have the same soname, how to handle it?
Possibly, this issue should be broached with the libstdc++ maintainers.
In my testing, I have moved to installing each gcc version in its own
directory.
I should note again that 3.3 has a ABI change in the passing of small
structures. It also contains a fix for function pointer comparison.
As glibc does function comparison in a number of routines, it needs
recompilation with 3.3 to work correctly. Then, I believe gcc needs
to be rebuilt as libstdc++ depends on the thread implementation. The
last glibc linuxthread code that I downloaded was still broken. I know
Carlos has a patch in the works.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-02 4:59 ` [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa Randolph Chung
2003-03-02 5:40 ` John David Anglin
@ 2003-03-02 5:40 ` John David Anglin
2003-03-03 14:27 ` Joel Soete
` (5 subsequent siblings)
7 siblings, 0 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-02 5:40 UTC (permalink / raw)
To: tausq; +Cc: doko, debian-hppa, debian-gcc, parisc-linux
> In reference to a message from Matthias Klose, dated Mar 01:
> > Matthias Klose writes:
> > > AFAIK the transition from 3.2 to 3.3 requires recompilation of C++
> > > code due to the changed exception handling (now DWARF2 based). As
> > > libstdc++ in 3.2 and 3.2 have the same soname, how to handle it?
Possibly, this issue should be broached with the libstdc++ maintainers.
In my testing, I have moved to installing each gcc version in its own
directory.
I should note again that 3.3 has a ABI change in the passing of small
structures. It also contains a fix for function pointer comparison.
As glibc does function comparison in a number of routines, it needs
recompilation with 3.3 to work correctly. Then, I believe gcc needs
to be rebuilt as libstdc++ depends on the thread implementation. The
last glibc linuxthread code that I downloaded was still broken. I know
Carlos has a patch in the works.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-02 5:40 ` John David Anglin
2003-03-02 9:24 ` M. Grabert
@ 2003-03-02 9:24 ` M. Grabert
2003-03-02 17:01 ` Randolph Chung
` (3 more replies)
1 sibling, 4 replies; 64+ messages in thread
From: M. Grabert @ 2003-03-02 9:24 UTC (permalink / raw)
To: John David Anglin; +Cc: debian-hppa, parisc-linux
On Sun, 2 Mar 2003, John David Anglin wrote:
> I should note again that 3.3 has a ABI change in the passing of small
> structures. It also contains a fix for function pointer comparison.
> As glibc does function comparison in a number of routines, it needs
> recompilation with 3.3 to work correctly. Then, I believe gcc needs
> to be rebuilt as libstdc++ depends on the thread implementation. The
> last glibc linuxthread code that I downloaded was still broken. I know
> Carlos has a patch in the works.
This means that future glibc (in Debian/PA-RISC, unstable) will/must
be compiled with gcc-3.3, along with all C++-programmes. Is this going to
happen soon or do you wait until gcc-3.3 is offically released?
Does this also imply that gcc/g++-3.3 will be the new default compiler
for unstable then? What (kind of) existing broken applications will be
fixed by recompiling with gcc-3.3?
Just curious, Max
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-02 5:40 ` John David Anglin
@ 2003-03-02 9:24 ` M. Grabert
2003-03-02 9:24 ` M. Grabert
1 sibling, 0 replies; 64+ messages in thread
From: M. Grabert @ 2003-03-02 9:24 UTC (permalink / raw)
To: John David Anglin; +Cc: debian-hppa, parisc-linux
On Sun, 2 Mar 2003, John David Anglin wrote:
> I should note again that 3.3 has a ABI change in the passing of small
> structures. It also contains a fix for function pointer comparison.
> As glibc does function comparison in a number of routines, it needs
> recompilation with 3.3 to work correctly. Then, I believe gcc needs
> to be rebuilt as libstdc++ depends on the thread implementation. The
> last glibc linuxthread code that I downloaded was still broken. I know
> Carlos has a patch in the works.
This means that future glibc (in Debian/PA-RISC, unstable) will/must
be compiled with gcc-3.3, along with all C++-programmes. Is this going to
happen soon or do you wait until gcc-3.3 is offically released?
Does this also imply that gcc/g++-3.3 will be the new default compiler
for unstable then? What (kind of) existing broken applications will be
fixed by recompiling with gcc-3.3?
Just curious, Max
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-02 9:24 ` M. Grabert
@ 2003-03-02 17:01 ` Randolph Chung
2003-03-02 17:01 ` Randolph Chung
` (2 subsequent siblings)
3 siblings, 0 replies; 64+ messages in thread
From: Randolph Chung @ 2003-03-02 17:01 UTC (permalink / raw)
To: M. Grabert; +Cc: debian-hppa, parisc-linux
> This means that future glibc (in Debian/PA-RISC, unstable) will/must
> be compiled with gcc-3.3, along with all C++-programmes. Is this going to
> happen soon or do you wait until gcc-3.3 is offically released?
this is more or less up to the Debian release manager, but we are
probably not going to start gcc-3.3 transition until the gcc-3.2
transition is over.
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-02 9:24 ` M. Grabert
2003-03-02 17:01 ` Randolph Chung
@ 2003-03-02 17:01 ` Randolph Chung
2003-03-02 18:50 ` John David Anglin
2003-03-02 18:50 ` John David Anglin
3 siblings, 0 replies; 64+ messages in thread
From: Randolph Chung @ 2003-03-02 17:01 UTC (permalink / raw)
To: M. Grabert; +Cc: debian-hppa, parisc-linux
> This means that future glibc (in Debian/PA-RISC, unstable) will/must
> be compiled with gcc-3.3, along with all C++-programmes. Is this going to
> happen soon or do you wait until gcc-3.3 is offically released?
this is more or less up to the Debian release manager, but we are
probably not going to start gcc-3.3 transition until the gcc-3.2
transition is over.
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-02 9:24 ` M. Grabert
` (2 preceding siblings ...)
2003-03-02 18:50 ` John David Anglin
@ 2003-03-02 18:50 ` John David Anglin
3 siblings, 0 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-02 18:50 UTC (permalink / raw)
To: M. Grabert; +Cc: debian-hppa, parisc-linux
> Does this also imply that gcc/g++-3.3 will be the new default compiler
> for unstable then? What (kind of) existing broken applications will be
> fixed by recompiling with gcc-3.3?
I can't be very specific as to what's fixed as most of the fixes have
come about from fixing failures in the GCC and binutils testsuites.
The passing of small structs by value mainly affects C++ code. It's
rather uncommon to pass structs by value in C. I'm not aware of any
impact on glibc or hpux libc, for example.
The comparison of function pointers in dynamic applications was
broken. This was found in the binutils testsuite. It potentially
affects signal handlers, running of initializers and finalizers, etc.
The PA has a rather unique way of handling function pointers. A function
pointer points to a function descriptor when the plabel bit is set,
otherwise it points directly to the entry point of the function.
The dynamic loader does the initial setup of the function descriptors.
The first call to any function actually transfers to the routine
fixup in the dynamic loader. It resolves the address of the function
to call. Function pointer comparison also requires that the function
address be resolved. In GCC 3.0.4, we just compared the function
descriptor pointers. However, there can be multiple function decriptors
pointing to the same function. So, this wasn't reliable. When the
dynamic loader design was done a couple of years ago, this appears
to have been overlooked. HP-UX 11 has what they call official procedure
descriptors which are unique. Because it's not that common to pass
function pointers around from one dynamic object to another and compare
them with pointers from another object, the problem doesn't arise that
frequently.
The dwarf2 EH implementation was done mainly for compatibility with
other linux ports. It's probably more efficient the using sjlj
exceptions. Potentially, it's something that ada can use. I believe
that ACT is using dwarf2 EH in their commercial ada distribution
under hpux. It may also be useful for gdb. However, I don't think
there is a difference in GCC testresults.
The pthread design in glibc also is potentially an ABI breaker.
These are the PA specific ABI issues that I recall, but there might
be more.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-02 9:24 ` M. Grabert
2003-03-02 17:01 ` Randolph Chung
2003-03-02 17:01 ` Randolph Chung
@ 2003-03-02 18:50 ` John David Anglin
2003-03-02 18:50 ` John David Anglin
3 siblings, 0 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-02 18:50 UTC (permalink / raw)
To: M. Grabert; +Cc: debian-hppa, parisc-linux
> Does this also imply that gcc/g++-3.3 will be the new default compiler
> for unstable then? What (kind of) existing broken applications will be
> fixed by recompiling with gcc-3.3?
I can't be very specific as to what's fixed as most of the fixes have
come about from fixing failures in the GCC and binutils testsuites.
The passing of small structs by value mainly affects C++ code. It's
rather uncommon to pass structs by value in C. I'm not aware of any
impact on glibc or hpux libc, for example.
The comparison of function pointers in dynamic applications was
broken. This was found in the binutils testsuite. It potentially
affects signal handlers, running of initializers and finalizers, etc.
The PA has a rather unique way of handling function pointers. A function
pointer points to a function descriptor when the plabel bit is set,
otherwise it points directly to the entry point of the function.
The dynamic loader does the initial setup of the function descriptors.
The first call to any function actually transfers to the routine
fixup in the dynamic loader. It resolves the address of the function
to call. Function pointer comparison also requires that the function
address be resolved. In GCC 3.0.4, we just compared the function
descriptor pointers. However, there can be multiple function decriptors
pointing to the same function. So, this wasn't reliable. When the
dynamic loader design was done a couple of years ago, this appears
to have been overlooked. HP-UX 11 has what they call official procedure
descriptors which are unique. Because it's not that common to pass
function pointers around from one dynamic object to another and compare
them with pointers from another object, the problem doesn't arise that
frequently.
The dwarf2 EH implementation was done mainly for compatibility with
other linux ports. It's probably more efficient the using sjlj
exceptions. Potentially, it's something that ada can use. I believe
that ACT is using dwarf2 EH in their commercial ada distribution
under hpux. It may also be useful for gdb. However, I don't think
there is a difference in GCC testresults.
The pthread design in glibc also is potentially an ABI breaker.
These are the PA specific ABI issues that I recall, but there might
be more.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
^ permalink raw reply [flat|nested] 64+ messages in thread
* RE: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-02 4:59 ` [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa Randolph Chung
` (2 preceding siblings ...)
2003-03-03 14:27 ` Joel Soete
@ 2003-03-03 14:27 ` Joel Soete
2003-03-03 16:17 ` John David Anglin
2003-03-03 16:17 ` John David Anglin
2003-03-09 20:06 ` Matthias Klose
` (3 subsequent siblings)
7 siblings, 2 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-03 14:27 UTC (permalink / raw)
To: Randolph Chung, Matthias Klose; +Cc: debian-hppa, debian-gcc, parisc-linux
>-- Original Message --
>From: Randolph Chung <tausq@debian.org>
>To: Matthias Klose <doko@cs.tu-berlin.de>
>Cc: debian-hppa@lists.debian.org, debian-gcc@lists.debian.org,
> parisc-linux@lists.parisc-linux.org
>Reply-To: Randolph Chung <tausq@debian.org>
>Subject: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
>Date: Sat, 1 Mar 2003 20:59:36 -0800
>
>
>In reference to a message from Matthias Klose, dated Mar 01:
>> Matthias Klose writes:
>> > AFAIK the transition from 3.2 to 3.3 requires recompilation of C++
>> > code due to the changed exception handling (now DWARF2 based). As
>> > libstdc++ in 3.2 and 3.2 have the same soname, how to handle it?
>> > Currently 3.2 is in unstable only. Would you want to start the
>> > recompilation before 3.2 based binaries go to testing?
>> >
>> > The packaging for 3.3 can be found in the Debian CVS.
hmm is there an url explaining how to grab it?
>>
>> You can get test packages from
>> http://ftp-master.debian.org/~doko/gcc-3.3/
>
Nice and is it also possible to produce a 64bits version of gcc?
>well.... this is not looking good. after installing these in a freshly
>built sarge chroot, all c++ programs stop working (well, i've only tried
>two -- apt and fakeroot)
>
>(btw, small packaging detail, but the libstdc++*-dev package above
>cannot be installed cleanly because it overwrites things in the current
>3.2 package)
>
>randolph
>--
>Randolph Chung
>Debian GNU/Linux Developer, hppa/ia64 ports
>http://www.tausq.org/
>_______________________________________________
>parisc-linux mailing list
>parisc-linux@lists.parisc-linux.org
>http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
Thanks,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Faites des economies avec Tiscali Complete
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
* RE: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-02 4:59 ` [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa Randolph Chung
2003-03-02 5:40 ` John David Anglin
2003-03-02 5:40 ` John David Anglin
@ 2003-03-03 14:27 ` Joel Soete
2003-03-03 14:27 ` Joel Soete
` (4 subsequent siblings)
7 siblings, 0 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-03 14:27 UTC (permalink / raw)
To: Randolph Chung, Matthias Klose; +Cc: debian-hppa, debian-gcc, parisc-linux
>-- Original Message --
>From: Randolph Chung <tausq@debian.org>
>To: Matthias Klose <doko@cs.tu-berlin.de>
>Cc: debian-hppa@lists.debian.org, debian-gcc@lists.debian.org,
> parisc-linux@lists.parisc-linux.org
>Reply-To: Randolph Chung <tausq@debian.org>
>Subject: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
>Date: Sat, 1 Mar 2003 20:59:36 -0800
>
>
>In reference to a message from Matthias Klose, dated Mar 01:
>> Matthias Klose writes:
>> > AFAIK the transition from 3.2 to 3.3 requires recompilation of C++
>> > code due to the changed exception handling (now DWARF2 based). As
>> > libstdc++ in 3.2 and 3.2 have the same soname, how to handle it?
>> > Currently 3.2 is in unstable only. Would you want to start the
>> > recompilation before 3.2 based binaries go to testing?
>> >
>> > The packaging for 3.3 can be found in the Debian CVS.
hmm is there an url explaining how to grab it?
>>
>> You can get test packages from
>> http://ftp-master.debian.org/~doko/gcc-3.3/
>
Nice and is it also possible to produce a 64bits version of gcc?
>well.... this is not looking good. after installing these in a freshly
>built sarge chroot, all c++ programs stop working (well, i've only tried
>two -- apt and fakeroot)
>
>(btw, small packaging detail, but the libstdc++*-dev package above
>cannot be installed cleanly because it overwrites things in the current
>3.2 package)
>
>randolph
>--
>Randolph Chung
>Debian GNU/Linux Developer, hppa/ia64 ports
>http://www.tausq.org/
>_______________________________________________
>parisc-linux mailing list
>parisc-linux@lists.parisc-linux.org
>http://lists.parisc-linux.org/mailman/listinfo/parisc-linux
Thanks,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Faites des economies avec Tiscali Complete
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-03 14:27 ` Joel Soete
2003-03-03 16:17 ` John David Anglin
@ 2003-03-03 16:17 ` John David Anglin
2003-03-03 16:24 ` Randolph Chung
1 sibling, 1 reply; 64+ messages in thread
From: John David Anglin @ 2003-03-03 16:17 UTC (permalink / raw)
To: Joel Soete; +Cc: tausq, doko, debian-hppa, debian-gcc, parisc-linux
> Nice and is it also possible to produce a 64bits version of gcc?
Last time I tried (couple of weeks ago), it was possible to build
a 64-bit cross starting with 3.3. This still doesn't work with 3.2.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-03 14:27 ` Joel Soete
@ 2003-03-03 16:17 ` John David Anglin
2003-03-03 16:17 ` John David Anglin
1 sibling, 0 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-03 16:17 UTC (permalink / raw)
To: Joel Soete; +Cc: tausq, doko, debian-hppa, debian-gcc, parisc-linux
> Nice and is it also possible to produce a 64bits version of gcc?
Last time I tried (couple of weeks ago), it was possible to build
a 64-bit cross starting with 3.3. This still doesn't work with 3.2.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-03 16:17 ` John David Anglin
@ 2003-03-03 16:24 ` Randolph Chung
2003-03-03 17:22 ` Joel Soete
0 siblings, 1 reply; 64+ messages in thread
From: Randolph Chung @ 2003-03-03 16:24 UTC (permalink / raw)
To: John David Anglin; +Cc: Joel Soete, parisc-linux
[Note: trimmed cc list]
> Last time I tried (couple of weeks ago), it was possible to build
> a 64-bit cross starting with 3.3. This still doesn't work with 3.2.
also 64-bit hppa64-linux gcc-3.2 (built with 3.3) ICEs regularly. For
people using this to build kernels, I would suggest staying with 3.0.4
for now.
(I'm also seeing reproducible crashes when running hppa64-linux-ld now,
still need to track that down)
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-03 16:24 ` Randolph Chung
@ 2003-03-03 17:22 ` Joel Soete
0 siblings, 0 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-03 17:22 UTC (permalink / raw)
To: Randolph Chung; +Cc: John David Anglin, parisc-linux
Randolph Chung wrote:
>[Note: trimmed cc list]
>
>
>
>>Last time I tried (couple of weeks ago), it was possible to build
>>a 64-bit cross starting with 3.3. This still doesn't work with 3.2.
>>
>>
>
>also 64-bit hppa64-linux gcc-3.2 (built with 3.3) ICEs regularly. For
>people using this to build kernels, I would suggest staying with 3.0.4
>for now.
>
>(I'm also seeing reproducible crashes when running hppa64-linux-ld now,
>still need to track that down)
>
>randolph
>
>
Ok Randolph, I will wait so because the question was in fact to rebuild
a kernel 64bits with smp support (up works fine) but smp seems to
failled just after init the first cpu and would like to see what is the
problem.
Thanks for advise,
Joel
^ permalink raw reply [flat|nested] 64+ messages in thread
* [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-02 4:59 ` [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa Randolph Chung
` (4 preceding siblings ...)
2003-03-09 20:06 ` Matthias Klose
@ 2003-03-09 20:06 ` Matthias Klose
2003-03-09 20:27 ` John David Anglin
2003-03-09 20:27 ` John David Anglin
2003-03-12 17:33 ` Joel Soete
2003-03-12 17:33 ` Joel Soete
7 siblings, 2 replies; 64+ messages in thread
From: Matthias Klose @ 2003-03-09 20:06 UTC (permalink / raw)
To: Randolph Chung; +Cc: debian-hppa, debian-gcc, parisc-linux
Randolph Chung writes:
> In reference to a message from Matthias Klose, dated Mar 01:
> > Matthias Klose writes:
> > > AFAIK the transition from 3.2 to 3.3 requires recompilation of C++
> > > code due to the changed exception handling (now DWARF2 based). As
> > > libstdc++ in 3.2 and 3.2 have the same soname, how to handle it?
> > > Currently 3.2 is in unstable only. Would you want to start the
> > > recompilation before 3.2 based binaries go to testing?
> > >
> > > The packaging for 3.3 can be found in the Debian CVS.
> >
> > You can get test packages from
> > http://ftp-master.debian.org/~doko/gcc-3.3/
>
> well.... this is not looking good. after installing these in a freshly
> built sarge chroot, all c++ programs stop working (well, i've only tried
> two -- apt and fakeroot)
You can find updated packages at
http://ftp-master.debian.org/~doko/gcc-3.3/hppa/
checked building bash (fakeroot) and upgrading an unstable chroot (apt).
> (btw, small packaging detail, but the libstdc++*-dev package above
> cannot be installed cleanly because it overwrites things in the current
> 3.2 package)
There is still one conflict for libstdc++5-dev (<= 1:3.2.3-0pre3), so
please install libstdc++5-dev (1:3.2.3-0pre4) first.
Matthias
^ permalink raw reply [flat|nested] 64+ messages in thread
* [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-02 4:59 ` [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa Randolph Chung
` (3 preceding siblings ...)
2003-03-03 14:27 ` Joel Soete
@ 2003-03-09 20:06 ` Matthias Klose
2003-03-09 20:06 ` Matthias Klose
` (2 subsequent siblings)
7 siblings, 0 replies; 64+ messages in thread
From: Matthias Klose @ 2003-03-09 20:06 UTC (permalink / raw)
To: Randolph Chung; +Cc: debian-hppa, debian-gcc, parisc-linux
Randolph Chung writes:
> In reference to a message from Matthias Klose, dated Mar 01:
> > Matthias Klose writes:
> > > AFAIK the transition from 3.2 to 3.3 requires recompilation of C++
> > > code due to the changed exception handling (now DWARF2 based). As
> > > libstdc++ in 3.2 and 3.2 have the same soname, how to handle it?
> > > Currently 3.2 is in unstable only. Would you want to start the
> > > recompilation before 3.2 based binaries go to testing?
> > >
> > > The packaging for 3.3 can be found in the Debian CVS.
> >
> > You can get test packages from
> > http://ftp-master.debian.org/~doko/gcc-3.3/
>
> well.... this is not looking good. after installing these in a freshly
> built sarge chroot, all c++ programs stop working (well, i've only tried
> two -- apt and fakeroot)
You can find updated packages at
http://ftp-master.debian.org/~doko/gcc-3.3/hppa/
checked building bash (fakeroot) and upgrading an unstable chroot (apt).
> (btw, small packaging detail, but the libstdc++*-dev package above
> cannot be installed cleanly because it overwrites things in the current
> 3.2 package)
There is still one conflict for libstdc++5-dev (<= 1:3.2.3-0pre3), so
please install libstdc++5-dev (1:3.2.3-0pre4) first.
Matthias
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-09 20:06 ` Matthias Klose
@ 2003-03-09 20:27 ` John David Anglin
2003-03-09 20:45 ` Randolph Chung
2003-03-09 20:45 ` Randolph Chung
2003-03-09 20:27 ` John David Anglin
1 sibling, 2 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-09 20:27 UTC (permalink / raw)
To: Matthias Klose; +Cc: tausq, debian-hppa, debian-gcc, parisc-linux
> Randolph Chung writes:
> > In reference to a message from Matthias Klose, dated Mar 01:
> > > Matthias Klose writes:
> > > > AFAIK the transition from 3.2 to 3.3 requires recompilation of C++
> > > > code due to the changed exception handling (now DWARF2 based). As
> > > > libstdc++ in 3.2 and 3.2 have the same soname, how to handle it?
> > > > Currently 3.2 is in unstable only. Would you want to start the
> > > > recompilation before 3.2 based binaries go to testing?
> > > >
> > > > The packaging for 3.3 can be found in the Debian CVS.
> > >
> > > You can get test packages from
> > > http://ftp-master.debian.org/~doko/gcc-3.3/
> >
> > well.... this is not looking good. after installing these in a freshly
> > built sarge chroot, all c++ programs stop working (well, i've only tried
> > two -- apt and fakeroot)
>
> You can find updated packages at
> http://ftp-master.debian.org/~doko/gcc-3.3/hppa/
> checked building bash (fakeroot) and upgrading an unstable chroot (apt).
>
> > (btw, small packaging detail, but the libstdc++*-dev package above
> > cannot be installed cleanly because it overwrites things in the current
> > 3.2 package)
>
> There is still one conflict for libstdc++5-dev (<= 1:3.2.3-0pre3), so
> please install libstdc++5-dev (1:3.2.3-0pre4) first.
Did you configure 3.3 using "--enable-sjlj-exceptions=yes"? That way
the 3.3 C++ library should be compatible with the previous 3.3 library.
The switch to dwarf2 can be delayed until the next debian release.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-09 20:06 ` Matthias Klose
2003-03-09 20:27 ` John David Anglin
@ 2003-03-09 20:27 ` John David Anglin
1 sibling, 0 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-09 20:27 UTC (permalink / raw)
To: Matthias Klose; +Cc: tausq, debian-hppa, debian-gcc, parisc-linux
> Randolph Chung writes:
> > In reference to a message from Matthias Klose, dated Mar 01:
> > > Matthias Klose writes:
> > > > AFAIK the transition from 3.2 to 3.3 requires recompilation of C++
> > > > code due to the changed exception handling (now DWARF2 based). As
> > > > libstdc++ in 3.2 and 3.2 have the same soname, how to handle it?
> > > > Currently 3.2 is in unstable only. Would you want to start the
> > > > recompilation before 3.2 based binaries go to testing?
> > > >
> > > > The packaging for 3.3 can be found in the Debian CVS.
> > >
> > > You can get test packages from
> > > http://ftp-master.debian.org/~doko/gcc-3.3/
> >
> > well.... this is not looking good. after installing these in a freshly
> > built sarge chroot, all c++ programs stop working (well, i've only tried
> > two -- apt and fakeroot)
>
> You can find updated packages at
> http://ftp-master.debian.org/~doko/gcc-3.3/hppa/
> checked building bash (fakeroot) and upgrading an unstable chroot (apt).
>
> > (btw, small packaging detail, but the libstdc++*-dev package above
> > cannot be installed cleanly because it overwrites things in the current
> > 3.2 package)
>
> There is still one conflict for libstdc++5-dev (<= 1:3.2.3-0pre3), so
> please install libstdc++5-dev (1:3.2.3-0pre4) first.
Did you configure 3.3 using "--enable-sjlj-exceptions=yes"? That way
the 3.3 C++ library should be compatible with the previous 3.3 library.
The switch to dwarf2 can be delayed until the next debian release.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6605)
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-09 20:27 ` John David Anglin
@ 2003-03-09 20:45 ` Randolph Chung
2003-03-09 20:45 ` Randolph Chung
1 sibling, 0 replies; 64+ messages in thread
From: Randolph Chung @ 2003-03-09 20:45 UTC (permalink / raw)
To: John David Anglin; +Cc: Matthias Klose, debian-hppa, debian-gcc, parisc-linux
> Did you configure 3.3 using "--enable-sjlj-exceptions=yes"? That way
> the 3.3 C++ library should be compatible with the previous 3.3 library.
> The switch to dwarf2 can be delayed until the next debian release.
yeah, i exchanged some mail with Matthias about this.
Anyway, I have the debs installed in a chroot now. Will start building
random stuff and see what happens :)
stay tuned,
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-09 20:27 ` John David Anglin
2003-03-09 20:45 ` Randolph Chung
@ 2003-03-09 20:45 ` Randolph Chung
1 sibling, 0 replies; 64+ messages in thread
From: Randolph Chung @ 2003-03-09 20:45 UTC (permalink / raw)
To: John David Anglin; +Cc: Matthias Klose, debian-hppa, debian-gcc, parisc-linux
> Did you configure 3.3 using "--enable-sjlj-exceptions=yes"? That way
> the 3.3 C++ library should be compatible with the previous 3.3 library.
> The switch to dwarf2 can be delayed until the next debian release.
yeah, i exchanged some mail with Matthias about this.
Anyway, I have the debs installed in a chroot now. Will start building
random stuff and see what happens :)
stay tuned,
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
^ permalink raw reply [flat|nested] 64+ messages in thread
* RE: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-02 4:59 ` [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa Randolph Chung
` (6 preceding siblings ...)
2003-03-12 17:33 ` Joel Soete
@ 2003-03-12 17:33 ` Joel Soete
2003-03-12 17:35 ` Randolph Chung
2003-03-12 17:35 ` Randolph Chung
7 siblings, 2 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-12 17:33 UTC (permalink / raw)
To: Randolph Chung, Matthias Klose; +Cc: debian-hppa, debian-gcc, parisc-linux
Hi Randolph,
>-- Original Message --
>From: Randolph Chung <tausq@debian.org>
>To: Matthias Klose <doko@cs.tu-berlin.de>
>Cc: debian-hppa@lists.debian.org, debian-gcc@lists.debian.org,
> parisc-linux@lists.parisc-linux.org
>Reply-To: Randolph Chung <tausq@debian.org>
>Subject: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
>Date: Sat, 1 Mar 2003 20:59:36 -0800
>
>
>In reference to a message from Matthias Klose, dated Mar 01:
>> Matthias Klose writes:
>> > AFAIK the transition from 3.2 to 3.3 requires recompilation of C++
>> > code due to the changed exception handling (now DWARF2 based). As
>> > libstdc++ in 3.2 and 3.2 have the same soname, how to handle it?
>> > Currently 3.2 is in unstable only. Would you want to start the
>> > recompilation before 3.2 based binaries go to testing?
>> >
>> > The packaging for 3.3 can be found in the Debian CVS.
>>
>> You can get test packages from
>> http://ftp-master.debian.org/~doko/gcc-3.3/
>
>well.... this is not looking good. after installing these in a freshly
>built sarge chroot, all c++ programs stop working (well, i've only tried
>two -- apt and fakeroot)
>
>(btw, small packaging detail, but the libstdc++*-dev package above
>cannot be installed cleanly because it overwrites things in the current
>3.2 package)
>
Sorry in advance if I am annoying.
I am looking to rebuild gcc-3.3 64bits to rebuild the last kernel 2.4 to
conitnue my investigation about smp(64bits) [which failled to boot on a N4000
when compile d with gcc-3.2 get from unofficial-debs].
To do I download the very last src from Matthias Klose who advise me to my
question:
>> Do you have some idea how to rebuild it from dpkg sources?
>> (I would like avoid the toolchain procedure if possible)
>look at debian/rules.defs for the support to build a cross compiler.
>It was submitted some weeks ago. I didn't check this myself yet.
I have a look but it is not clear to me; can you help me in more details?
(ps: I already install the last Matthias gcc-3.3 dpkg 32bits;
according to your <http://lists.parisc-linux.org/pipermail/parisc-linux/2003-February/019170.html>
it is a prerequisite)
Thanks in advance,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Faites des economies avec Tiscali Complete
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
* RE: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-02 4:59 ` [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa Randolph Chung
` (5 preceding siblings ...)
2003-03-09 20:06 ` Matthias Klose
@ 2003-03-12 17:33 ` Joel Soete
2003-03-12 17:33 ` Joel Soete
7 siblings, 0 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-12 17:33 UTC (permalink / raw)
To: Randolph Chung, Matthias Klose; +Cc: debian-hppa, debian-gcc, parisc-linux
Hi Randolph,
>-- Original Message --
>From: Randolph Chung <tausq@debian.org>
>To: Matthias Klose <doko@cs.tu-berlin.de>
>Cc: debian-hppa@lists.debian.org, debian-gcc@lists.debian.org,
> parisc-linux@lists.parisc-linux.org
>Reply-To: Randolph Chung <tausq@debian.org>
>Subject: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
>Date: Sat, 1 Mar 2003 20:59:36 -0800
>
>
>In reference to a message from Matthias Klose, dated Mar 01:
>> Matthias Klose writes:
>> > AFAIK the transition from 3.2 to 3.3 requires recompilation of C++
>> > code due to the changed exception handling (now DWARF2 based). As
>> > libstdc++ in 3.2 and 3.2 have the same soname, how to handle it?
>> > Currently 3.2 is in unstable only. Would you want to start the
>> > recompilation before 3.2 based binaries go to testing?
>> >
>> > The packaging for 3.3 can be found in the Debian CVS.
>>
>> You can get test packages from
>> http://ftp-master.debian.org/~doko/gcc-3.3/
>
>well.... this is not looking good. after installing these in a freshly
>built sarge chroot, all c++ programs stop working (well, i've only tried
>two -- apt and fakeroot)
>
>(btw, small packaging detail, but the libstdc++*-dev package above
>cannot be installed cleanly because it overwrites things in the current
>3.2 package)
>
Sorry in advance if I am annoying.
I am looking to rebuild gcc-3.3 64bits to rebuild the last kernel 2.4 to
conitnue my investigation about smp(64bits) [which failled to boot on a N4000
when compile d with gcc-3.2 get from unofficial-debs].
To do I download the very last src from Matthias Klose who advise me to my
question:
>> Do you have some idea how to rebuild it from dpkg sources?
>> (I would like avoid the toolchain procedure if possible)
>look at debian/rules.defs for the support to build a cross compiler.
>It was submitted some weeks ago. I didn't check this myself yet.
I have a look but it is not clear to me; can you help me in more details?
(ps: I already install the last Matthias gcc-3.3 dpkg 32bits;
according to your <http://lists.parisc-linux.org/pipermail/parisc-linux/2003-February/019170.html>
it is a prerequisite)
Thanks in advance,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Faites des economies avec Tiscali Complete
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-12 17:33 ` Joel Soete
2003-03-12 17:35 ` Randolph Chung
@ 2003-03-12 17:35 ` Randolph Chung
2003-03-12 17:53 ` Joel Soete
2003-03-12 17:53 ` Joel Soete
1 sibling, 2 replies; 64+ messages in thread
From: Randolph Chung @ 2003-03-12 17:35 UTC (permalink / raw)
To: Joel Soete; +Cc: Matthias Klose, debian-hppa, debian-gcc, parisc-linux
> I am looking to rebuild gcc-3.3 64bits to rebuild the last kernel 2.4 to
> conitnue my investigation about smp(64bits) [which failled to boot on a N4000
> when compile d with gcc-3.2 get from unofficial-debs].
If you are working on 64-bit, I would advise staying with 3.0.4 for
now.... no one has tested 3.3 hppa64-linux-gcc at all, so it will just
be introducing more unknowns into the problem.
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-12 17:33 ` Joel Soete
@ 2003-03-12 17:35 ` Randolph Chung
2003-03-12 17:35 ` Randolph Chung
1 sibling, 0 replies; 64+ messages in thread
From: Randolph Chung @ 2003-03-12 17:35 UTC (permalink / raw)
To: Joel Soete; +Cc: Matthias Klose, debian-hppa, debian-gcc, parisc-linux
> I am looking to rebuild gcc-3.3 64bits to rebuild the last kernel 2.4 to
> conitnue my investigation about smp(64bits) [which failled to boot on a N4000
> when compile d with gcc-3.2 get from unofficial-debs].
If you are working on 64-bit, I would advise staying with 3.0.4 for
now.... no one has tested 3.3 hppa64-linux-gcc at all, so it will just
be introducing more unknowns into the problem.
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-12 17:35 ` Randolph Chung
2003-03-12 17:53 ` Joel Soete
@ 2003-03-12 17:53 ` Joel Soete
2003-03-14 12:48 ` Joel Soete
` (3 more replies)
1 sibling, 4 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-12 17:53 UTC (permalink / raw)
To: Randolph Chung; +Cc: Matthias Klose, debian-hppa, debian-gcc, parisc-linux
>-- Original Message --
>Date: Wed, 12 Mar 2003 09:35:05 -0800
>From: Randolph Chung <tausq@debian.org>
>To: Joel Soete <jsoe0708@tiscali.be>
>Cc: Matthias Klose <doko@cs.tu-berlin.de>,
> debian-hppa@lists.debian.org, debian-gcc@lists.debian.org,
> parisc-linux@lists.parisc-linux.org
>Subject: Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
>Reply-To: Randolph Chung <tausq@debian.org>
>
>
>> I am looking to rebuild gcc-3.3 64bits to rebuild the last kernel 2.4
to
>> conitnue my investigation about smp(64bits) [which failled to boot on
a
>N4000
>> when compile d with gcc-3.2 get from unofficial-debs].
>
>If you are working on 64-bit, I would advise staying with 3.0.4 for
>now.... no one has tested 3.3 hppa64-linux-gcc at all, so it will just
>be introducing more unknowns into the problem.
>
Ok I am gonna try to rebuild it with gcc-3.0.
Thanks for advise,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Faites des economies avec Tiscali Complete
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-12 17:35 ` Randolph Chung
@ 2003-03-12 17:53 ` Joel Soete
2003-03-12 17:53 ` Joel Soete
1 sibling, 0 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-12 17:53 UTC (permalink / raw)
To: Randolph Chung; +Cc: Matthias Klose, debian-hppa, debian-gcc, parisc-linux
>-- Original Message --
>Date: Wed, 12 Mar 2003 09:35:05 -0800
>From: Randolph Chung <tausq@debian.org>
>To: Joel Soete <jsoe0708@tiscali.be>
>Cc: Matthias Klose <doko@cs.tu-berlin.de>,
> debian-hppa@lists.debian.org, debian-gcc@lists.debian.org,
> parisc-linux@lists.parisc-linux.org
>Subject: Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
>Reply-To: Randolph Chung <tausq@debian.org>
>
>
>> I am looking to rebuild gcc-3.3 64bits to rebuild the last kernel 2.4
to
>> conitnue my investigation about smp(64bits) [which failled to boot on
a
>N4000
>> when compile d with gcc-3.2 get from unofficial-debs].
>
>If you are working on 64-bit, I would advise staying with 3.0.4 for
>now.... no one has tested 3.3 hppa64-linux-gcc at all, so it will just
>be introducing more unknowns into the problem.
>
Ok I am gonna try to rebuild it with gcc-3.0.
Thanks for advise,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Faites des economies avec Tiscali Complete
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-12 17:53 ` Joel Soete
2003-03-14 12:48 ` Joel Soete
@ 2003-03-14 12:48 ` Joel Soete
2003-03-14 13:17 ` Matthew Wilcox
2003-03-14 13:17 ` Matthew Wilcox
2003-03-20 18:06 ` Joel Soete
2003-03-20 18:06 ` Joel Soete
3 siblings, 2 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-14 12:48 UTC (permalink / raw)
To: Randolph Chung; +Cc: Matthias Klose, debian-hppa, debian-gcc, parisc-linux
>>
>Ok I am gonna try to rebuild it with gcc-3.0.
>
Wel I just do it (in 32bits naturaly) and already encounter a problem :_)
:
`gcc -print-libgcc-file-name` /usr/src/work/linux-2.4.20-pa28/arch/parisc/lib/lib.a
/usr/src/work/linux-2.4.20-pa28/lib/lib.a \
--end-group \
-o vmlinux
net/network.o(.text.rtnetlink_rcv+0x84): In function `rtnetlink_rcv':
: undefined reference to `rtnetlink_rcv_skb'
make: *** [vmlinux] Error 1
(with gcc-3.2 with same src && same .config there was no pb)
Thanks in advance for advise,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Faites des economies avec Tiscali Complete
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-12 17:53 ` Joel Soete
@ 2003-03-14 12:48 ` Joel Soete
2003-03-14 12:48 ` Joel Soete
` (2 subsequent siblings)
3 siblings, 0 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-14 12:48 UTC (permalink / raw)
To: Randolph Chung; +Cc: Matthias Klose, debian-hppa, debian-gcc, parisc-linux
>>
>Ok I am gonna try to rebuild it with gcc-3.0.
>
Wel I just do it (in 32bits naturaly) and already encounter a problem :_)
:
`gcc -print-libgcc-file-name` /usr/src/work/linux-2.4.20-pa28/arch/parisc/lib/lib.a
/usr/src/work/linux-2.4.20-pa28/lib/lib.a \
--end-group \
-o vmlinux
net/network.o(.text.rtnetlink_rcv+0x84): In function `rtnetlink_rcv':
: undefined reference to `rtnetlink_rcv_skb'
make: *** [vmlinux] Error 1
(with gcc-3.2 with same src && same .config there was no pb)
Thanks in advance for advise,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Faites des economies avec Tiscali Complete
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-14 12:48 ` Joel Soete
@ 2003-03-14 13:17 ` Matthew Wilcox
2003-03-14 16:31 ` Joel Soete
` (2 more replies)
2003-03-14 13:17 ` Matthew Wilcox
1 sibling, 3 replies; 64+ messages in thread
From: Matthew Wilcox @ 2003-03-14 13:17 UTC (permalink / raw)
To: Joel Soete
Cc: Randolph Chung, Matthias Klose, debian-hppa, debian-gcc,
parisc-linux, Alexey Kuznetsov, linux-net
On Fri, Mar 14, 2003 at 01:48:59PM +0100, Joel Soete wrote:
> net/network.o(.text.rtnetlink_rcv+0x84): In function `rtnetlink_rcv':
> : undefined reference to `rtnetlink_rcv_skb'
> make: *** [vmlinux] Error 1
>
> (with gcc-3.2 with same src && same .config there was no pb)
You've just hit the gcc thinks it's smarter than you are bug.
net/core/rtnetlink.c:extern __inline__ int rtnetlink_rcv_skb(struct sk_buff *skb)
gcc 3.3 decides to not believe you want this function inlined. probably
the right fix for this is to make this function static inline (you can
drop the `__' around inline, it's not necessary). This is also the case
for linux 2.5.
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-14 12:48 ` Joel Soete
2003-03-14 13:17 ` Matthew Wilcox
@ 2003-03-14 13:17 ` Matthew Wilcox
1 sibling, 0 replies; 64+ messages in thread
From: Matthew Wilcox @ 2003-03-14 13:17 UTC (permalink / raw)
To: Joel Soete
Cc: Randolph Chung, Matthias Klose, debian-hppa, debian-gcc,
parisc-linux, Alexey Kuznetsov, linux-net
On Fri, Mar 14, 2003 at 01:48:59PM +0100, Joel Soete wrote:
> net/network.o(.text.rtnetlink_rcv+0x84): In function `rtnetlink_rcv':
> : undefined reference to `rtnetlink_rcv_skb'
> make: *** [vmlinux] Error 1
>
> (with gcc-3.2 with same src && same .config there was no pb)
You've just hit the gcc thinks it's smarter than you are bug.
net/core/rtnetlink.c:extern __inline__ int rtnetlink_rcv_skb(struct sk_buff *skb)
gcc 3.3 decides to not believe you want this function inlined. probably
the right fix for this is to make this function static inline (you can
drop the `__' around inline, it's not necessary). This is also the case
for linux 2.5.
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-14 13:17 ` Matthew Wilcox
2003-03-14 16:31 ` Joel Soete
@ 2003-03-14 16:31 ` Joel Soete
2003-03-18 18:14 ` b.gunreben
2003-03-18 18:14 ` b.gunreben
2003-03-16 22:52 ` Michael S.Zick
2 siblings, 2 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-14 16:31 UTC (permalink / raw)
To: Matthew Wilcox
Cc: Randolph Chung, Matthias Klose, debian-hppa, debian-gcc,
parisc-linux, Alexey Kuznetsov, linux-net
>
>On Fri, Mar 14, 2003 at 01:48:59PM +0100, Joel Soete wrote:
>> net/network.o(.text.rtnetlink_rcv+0x84): In function `rtnetlink_rcv':
>> : undefined reference to `rtnetlink_rcv_skb'
>> make: *** [vmlinux] Error 1
>>
>> (with gcc-3.2 with same src && same .config there was no pb)
>
>You've just hit the gcc thinks it's smarter than you are bug.
>
>net/core/rtnetlink.c:extern __inline__ int rtnetlink_rcv_skb(struct sk_buff
>*skb)
>
>gcc 3.3 decides to not believe you want this function inlined. probably
>the right fix for this is to make this function static inline (you can
>drop the `__' around inline, it's not necessary). This is also the case
>for linux 2.5.
>
Right Willy that allow to compile :)
Unfortunately it failled to boot :_( with following dump:
Freeing unused kernel memory: 246k freed
Stack Dump:
10674680: 0006ff0f 10371278 100dc000 00000000
10674670: 107dd2a0 101639e4 107dd220 103fcc80
10674660: 10398010 1003bd20 00027174 faf00068
10674650: 100bbd20 00000001 00000040 100bba00
10674640: 00000000 00000000 00000000 00000004
10674630: faf00290 101342f8 00020002 00020002
Kernel addresses on the stack:
[<101639e4>] [<101342f8>] [<1010bbf8>] [<101346d4>]
[<10110f90>] [<10110084>] [<1010fcf4>] [<10164e10>]
[<101639e4>] [<1017bfc4>] [<1017c21c>] [<1012d9f4>]
Kernel Fault: Code=15 regs=10674680 (Addr=00027750)
YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
PSW: 00000000000001101111111100001111 Not tainted
r00-03 00000000 103eee50 101342f8 00027750
r04-07 00000000 0000000e 0000000e 00027174
r08-11 00016800 00000001 10674000 1017c21c
r12-15 00027174 ffffffff 00000000 00000000
r16-19 103af5c0 00027974 ffffffff 10398010
r20-23 00001000 00027753 fffffff8 100bb9f4
r24-27 00000000 10674558 00027752 10398010
r28-31 00027752 00000000 10674680 40061077
sr0-3 00000001 00000001 00000000 00000001
sr4-7 00000000 00000000 00000000 00000000
IASQ: 00000000 00000000 IAOQ: 10351b7c 10351b80
IIR: 0c601094 ISR: 00000000 IOR: 00027750
CPU: 0 CR30: 10674000 CR31: 10438000
ORIG_R28: 00001000
Submitted to dump_analyser.sh, I obtain:
IAOQ = 10351b7c
Func: __canonicalize_funcptr_for_compare, Off: 38, Addr: 0x10351b7c
10351b70: 2a 6b 50 00 addil 56800,r19,%r1
10351b74: 48 21 0c a8 ldw 654(r1),r1
10351b78: d4 60 1c 1e depwi 0,31,2,r3
10351b7c: 0c 60 10 94 ldw 0(sr0,r3),r20
GR0 = 00000000
GR1 = 103eee50
Func: _GLOBAL_OFFSET_TABLE_, Off: 0, Addr: 0x103eee50
GR2 = 101342f8
Func: do_sigaction, Off: a8, Addr: 0x101342f8
101342f0: e8 50 0b 39 b,l 10114894 <print_parisc_device+0x3d0>,rp
101342f4: 0c 73 12 99 stw r19,-4(sr0,r3)
101342f8: 34 1a 00 02 ldi 1,r26
101342fc: e8 50 0b 21 b,l 10114894 <print_parisc_device+0x3d0>,rp
GR3 = 00027750
GR4 = 00000000
GR5 = 0000000e
GR6 = 0000000e
GR7 = 00027174
GR8 = 00016800
GR9 = 00000001
GR10 = 10674000
GR11 = 1017c21c
Func: sys_dup, Off: 28, Addr: 0x1017c21c
1017c210: 34 13 3f ef ldi -9,r19
1017c214: e8 5f 1b ed b,l 1017c010 <dupfd>,rp
1017c218: 08 00 02 40 nop
1017c21c: 08 1c 02 53 copy ret0,r19
GR12 = 00027174
GR13 = ffffffff
GR14 = 00000000
GR15 = 00000000
GR16 = 103af5c0
Func: init_mm, Off: 0, Addr: 0x103af5c0
GR17 = 00027974
GR18 = ffffffff
GR19 = 10398010
Func: $global$, Off: 0, Addr: 0x10398010
GR20 = 00001000
GR21 = 00027753
GR22 = fffffff8
GR23 = 100bb9f4
GR24 = 00000000
GR25 = 10674558
GR26 = 00027752
GR27 = 10398010
Func: $global$, Off: 0, Addr: 0x10398010
GR28 = 00027752
GR29 = 00000000
GR30 = 10674680
GR31 = 40061077
Kernel symbols on the stack:
[<101639e4>]: Func: dentry_open, Off: f4, Addr: 0x101639e4
[<101342f8>]: Func: do_sigaction, Off: a8, Addr: 0x101342f8
[<1010bbf8>]: Func: handle_interruption, Off: 150, Addr: 0x1010bbf8
[<101346d4>]: Func: sys_rt_sigaction, Off: 84, Addr: 0x101346d4
[<10110f90>]: Func: syscall_exit, Off: 0, Addr: 0x10110f90
[<10110084>]: Func: intr_check_sig, Off: 0, Addr: 0x10110084
[<1010fcf4>]: Func: _switch_to_ret, Off: 0, Addr: 0x1010fcf4
[<10164e10>]: Func: chrdev_open, Off: 64, Addr: 0x10164e10
[<101639e4>]: Func: dentry_open, Off: f4, Addr: 0x101639e4
[<1017bfc4>]: Func: locate_fd, Off: 70, Addr: 0x1017bfc4
[<1017c21c>]: Func: sys_dup, Off: 28, Addr: 0x1017c21c
[<1012d9f4>]: Func: it_real_fn, Off: 0, Addr: 0x1012d9f4
Done.
It doesn't help me more right now (some sleep need :) ).
Thanks,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Faites des economies avec Tiscali Complete
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-14 13:17 ` Matthew Wilcox
@ 2003-03-14 16:31 ` Joel Soete
2003-03-14 16:31 ` Joel Soete
2003-03-16 22:52 ` Michael S.Zick
2 siblings, 0 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-14 16:31 UTC (permalink / raw)
To: Matthew Wilcox
Cc: Randolph Chung, Matthias Klose, debian-hppa, debian-gcc,
parisc-linux, Alexey Kuznetsov, linux-net
>
>On Fri, Mar 14, 2003 at 01:48:59PM +0100, Joel Soete wrote:
>> net/network.o(.text.rtnetlink_rcv+0x84): In function `rtnetlink_rcv':
>> : undefined reference to `rtnetlink_rcv_skb'
>> make: *** [vmlinux] Error 1
>>
>> (with gcc-3.2 with same src && same .config there was no pb)
>
>You've just hit the gcc thinks it's smarter than you are bug.
>
>net/core/rtnetlink.c:extern __inline__ int rtnetlink_rcv_skb(struct sk_buff
>*skb)
>
>gcc 3.3 decides to not believe you want this function inlined. probably
>the right fix for this is to make this function static inline (you can
>drop the `__' around inline, it's not necessary). This is also the case
>for linux 2.5.
>
Right Willy that allow to compile :)
Unfortunately it failled to boot :_( with following dump:
Freeing unused kernel memory: 246k freed
Stack Dump:
10674680: 0006ff0f 10371278 100dc000 00000000
10674670: 107dd2a0 101639e4 107dd220 103fcc80
10674660: 10398010 1003bd20 00027174 faf00068
10674650: 100bbd20 00000001 00000040 100bba00
10674640: 00000000 00000000 00000000 00000004
10674630: faf00290 101342f8 00020002 00020002
Kernel addresses on the stack:
[<101639e4>] [<101342f8>] [<1010bbf8>] [<101346d4>]
[<10110f90>] [<10110084>] [<1010fcf4>] [<10164e10>]
[<101639e4>] [<1017bfc4>] [<1017c21c>] [<1012d9f4>]
Kernel Fault: Code=15 regs=10674680 (Addr=00027750)
YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
PSW: 00000000000001101111111100001111 Not tainted
r00-03 00000000 103eee50 101342f8 00027750
r04-07 00000000 0000000e 0000000e 00027174
r08-11 00016800 00000001 10674000 1017c21c
r12-15 00027174 ffffffff 00000000 00000000
r16-19 103af5c0 00027974 ffffffff 10398010
r20-23 00001000 00027753 fffffff8 100bb9f4
r24-27 00000000 10674558 00027752 10398010
r28-31 00027752 00000000 10674680 40061077
sr0-3 00000001 00000001 00000000 00000001
sr4-7 00000000 00000000 00000000 00000000
IASQ: 00000000 00000000 IAOQ: 10351b7c 10351b80
IIR: 0c601094 ISR: 00000000 IOR: 00027750
CPU: 0 CR30: 10674000 CR31: 10438000
ORIG_R28: 00001000
Submitted to dump_analyser.sh, I obtain:
IAOQ = 10351b7c
Func: __canonicalize_funcptr_for_compare, Off: 38, Addr: 0x10351b7c
10351b70: 2a 6b 50 00 addil 56800,r19,%r1
10351b74: 48 21 0c a8 ldw 654(r1),r1
10351b78: d4 60 1c 1e depwi 0,31,2,r3
10351b7c: 0c 60 10 94 ldw 0(sr0,r3),r20
GR0 = 00000000
GR1 = 103eee50
Func: _GLOBAL_OFFSET_TABLE_, Off: 0, Addr: 0x103eee50
GR2 = 101342f8
Func: do_sigaction, Off: a8, Addr: 0x101342f8
101342f0: e8 50 0b 39 b,l 10114894 <print_parisc_device+0x3d0>,rp
101342f4: 0c 73 12 99 stw r19,-4(sr0,r3)
101342f8: 34 1a 00 02 ldi 1,r26
101342fc: e8 50 0b 21 b,l 10114894 <print_parisc_device+0x3d0>,rp
GR3 = 00027750
GR4 = 00000000
GR5 = 0000000e
GR6 = 0000000e
GR7 = 00027174
GR8 = 00016800
GR9 = 00000001
GR10 = 10674000
GR11 = 1017c21c
Func: sys_dup, Off: 28, Addr: 0x1017c21c
1017c210: 34 13 3f ef ldi -9,r19
1017c214: e8 5f 1b ed b,l 1017c010 <dupfd>,rp
1017c218: 08 00 02 40 nop
1017c21c: 08 1c 02 53 copy ret0,r19
GR12 = 00027174
GR13 = ffffffff
GR14 = 00000000
GR15 = 00000000
GR16 = 103af5c0
Func: init_mm, Off: 0, Addr: 0x103af5c0
GR17 = 00027974
GR18 = ffffffff
GR19 = 10398010
Func: $global$, Off: 0, Addr: 0x10398010
GR20 = 00001000
GR21 = 00027753
GR22 = fffffff8
GR23 = 100bb9f4
GR24 = 00000000
GR25 = 10674558
GR26 = 00027752
GR27 = 10398010
Func: $global$, Off: 0, Addr: 0x10398010
GR28 = 00027752
GR29 = 00000000
GR30 = 10674680
GR31 = 40061077
Kernel symbols on the stack:
[<101639e4>]: Func: dentry_open, Off: f4, Addr: 0x101639e4
[<101342f8>]: Func: do_sigaction, Off: a8, Addr: 0x101342f8
[<1010bbf8>]: Func: handle_interruption, Off: 150, Addr: 0x1010bbf8
[<101346d4>]: Func: sys_rt_sigaction, Off: 84, Addr: 0x101346d4
[<10110f90>]: Func: syscall_exit, Off: 0, Addr: 0x10110f90
[<10110084>]: Func: intr_check_sig, Off: 0, Addr: 0x10110084
[<1010fcf4>]: Func: _switch_to_ret, Off: 0, Addr: 0x1010fcf4
[<10164e10>]: Func: chrdev_open, Off: 64, Addr: 0x10164e10
[<101639e4>]: Func: dentry_open, Off: f4, Addr: 0x101639e4
[<1017bfc4>]: Func: locate_fd, Off: 70, Addr: 0x1017bfc4
[<1017c21c>]: Func: sys_dup, Off: 28, Addr: 0x1017c21c
[<1012d9f4>]: Func: it_real_fn, Off: 0, Addr: 0x1012d9f4
Done.
It doesn't help me more right now (some sleep need :) ).
Thanks,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Faites des economies avec Tiscali Complete
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-14 13:17 ` Matthew Wilcox
2003-03-14 16:31 ` Joel Soete
2003-03-14 16:31 ` Joel Soete
@ 2003-03-16 22:52 ` Michael S.Zick
2003-03-16 23:06 ` Matthew Wilcox
2 siblings, 1 reply; 64+ messages in thread
From: Michael S.Zick @ 2003-03-16 22:52 UTC (permalink / raw)
To: Matthew Wilcox, Joel Soete; +Cc: parisc-linux
On Friday 14 March 2003 07:17 am, Matthew Wilcox wrote:
> On Fri, Mar 14, 2003 at 01:48:59PM +0100, Joel Soete wrote:
> > net/network.o(.text.rtnetlink_rcv+0x84): In function `rtnetlink_rcv':
> > : undefined reference to `rtnetlink_rcv_skb'
> >
> > make: *** [vmlinux] Error 1
> >
> > (with gcc-3.2 with same src && same .config there was no pb)
>
> You've just hit the gcc thinks it's smarter than you are bug.
>
> net/core/rtnetlink.c:extern __inline__ int rtnetlink_rcv_skb(struct sk_buff
> *skb)
>
> gcc 3.3 decides to not believe you want this function inlined. probably
> the right fix for this is to make this function static inline (you can
> drop the `__' around inline, it's not necessary). This is also the case
> for linux 2.5.
Stolen from the GCC thread on 3.x.x inlining...
- - - - GCC - - - - -
For the record, the kernel doesn't need this any more. Go check 2.5;
new versions of <linux/compiler.h> contain this line:
#define inline __inline__ __attribute__((always_inline))
- - - - - - - - - - - -
That forces GCC to ignore its changed inline metrics and simply inline
the function.
Mike
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-16 22:52 ` Michael S.Zick
@ 2003-03-16 23:06 ` Matthew Wilcox
2003-03-16 23:17 ` Michael S.Zick
0 siblings, 1 reply; 64+ messages in thread
From: Matthew Wilcox @ 2003-03-16 23:06 UTC (permalink / raw)
To: Michael S. Zick; +Cc: Matthew Wilcox, Joel Soete, parisc-linux
On Sun, Mar 16, 2003 at 04:52:19PM -0600, Michael S. Zick wrote:
> On Friday 14 March 2003 07:17 am, Matthew Wilcox wrote:
> > net/core/rtnetlink.c:extern __inline__ int rtnetlink_rcv_skb(struct sk_buff
> > *skb)
> Stolen from the GCC thread on 3.x.x inlining...
> - - - - GCC - - - - -
> For the record, the kernel doesn't need this any more. Go check 2.5;
> new versions of <linux/compiler.h> contain this line:
> #define inline __inline__ __attribute__((always_inline))
> - - - - - - - - - - - -
> That forces GCC to ignore its changed inline metrics and simply inline
> the function.
Yes, but...
* Joel's using 2.4, not 2.5
* #define inline doesn't help functions which are marked as __inline__
This isn't a function which absolutely needs to be inlined. It can
be `static inline' and gcc can do whatever it likes then.
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-16 23:06 ` Matthew Wilcox
@ 2003-03-16 23:17 ` Michael S.Zick
2003-03-20 18:20 ` Joel Soete
0 siblings, 1 reply; 64+ messages in thread
From: Michael S.Zick @ 2003-03-16 23:17 UTC (permalink / raw)
To: Matthew Wilcox; +Cc: Joel Soete, parisc-linux
On Sunday 16 March 2003 05:06 pm, Matthew Wilcox wrote:
> On Sun, Mar 16, 2003 at 04:52:19PM -0600, Michael S. Zick wrote:
> > On Friday 14 March 2003 07:17 am, Matthew Wilcox wrote:
> > > net/core/rtnetlink.c:extern __inline__ int rtnetlink_rcv_skb(struct
> > > sk_buff *skb)
> >
> > Stolen from the GCC thread on 3.x.x inlining...
> > - - - - GCC - - - - -
> > For the record, the kernel doesn't need this any more. Go check 2.5;
> > new versions of <linux/compiler.h> contain this line:
> > #define inline __inline__ __attribute__((always_inline))
> > - - - - - - - - - - - -
> > That forces GCC to ignore its changed inline metrics and simply inline
> > the function.
>
> Yes, but...
>
> * Joel's using 2.4, not 2.5
Exactly why I mentioned it.
> * #define inline doesn't help functions which are marked as __inline__
If he follows your suggestion of dropping the "__" around "inline" it will.
>
> This isn't a function which absolutely needs to be inlined. It can
> be `static inline' and gcc can do whatever it likes then.
The subject is getting a lot of discussion on the GCC list. I only mentioned
this one workaround so that Joel could get on with his work before the issue
is settled on the GCC list.
Mike
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-14 16:31 ` Joel Soete
@ 2003-03-18 18:14 ` b.gunreben
2003-03-18 18:53 ` John David Anglin
2003-03-18 18:53 ` John David Anglin
2003-03-18 18:14 ` b.gunreben
1 sibling, 2 replies; 64+ messages in thread
From: b.gunreben @ 2003-03-18 18:14 UTC (permalink / raw)
To: Joel Soete
Cc: Matthew Wilcox, Randolph Chung, Matthias Klose, debian-hppa,
debian-gcc, parisc-linux, Alexey Kuznetsov, linux-net
Joel Soete wrote:
> >gcc 3.3 decides to not believe you want this function inlined. probably
> >the right fix for this is to make this function static inline (you can
> >drop the `__' around inline, it's not necessary). This is also the case
> >for linux 2.5.
> >
> Right Willy that allow to compile :)
>
> Unfortunately it failled to boot :_( with following dump:
> Freeing unused kernel memory: 246k freed
> ......
> Submitted to dump_analyser.sh, I obtain:
>
> IAOQ = 10351b7c
> Func: __canonicalize_funcptr_for_compare, Off: 38, Addr: 0x10351b7c
> 10351b70: 2a 6b 50 00 addil 56800,r19,%r1
> 10351b74: 48 21 0c a8 ldw 654(r1),r1
> 10351b78: d4 60 1c 1e depwi 0,31,2,r3
> 10351b7c: 0c 60 10 94 ldw 0(sr0,r3),r20
>
> GR0 = 00000000
>
> GR1 = 103eee50
> Func: _GLOBAL_OFFSET_TABLE_, Off: 0, Addr: 0x103eee50
>
> GR2 = 101342f8
> Func: do_sigaction, Off: a8, Addr: 0x101342f8
I have the same problem with a gcc 3.3 compiled kernel. The kernel itself
completely comes up, and I even can call a static shell (something like
init=/bin/sash), but as soon as glibc is involved, the mentioned crash
occurs. Just to make it clear: I am able to use the builtin functions of
that shell (like ls) and this works.
This is independend from the kernel version (2.4 and 2.5 behave all the
same). The function __canonicalize_funcptr_for_compare seems to be newly
introduced in libgcc with gcc 3.3, and seems to be the cause of this error.
Berthold
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-14 16:31 ` Joel Soete
2003-03-18 18:14 ` b.gunreben
@ 2003-03-18 18:14 ` b.gunreben
1 sibling, 0 replies; 64+ messages in thread
From: b.gunreben @ 2003-03-18 18:14 UTC (permalink / raw)
To: Joel Soete
Cc: Matthew Wilcox, Randolph Chung, Matthias Klose, debian-hppa,
debian-gcc, parisc-linux, Alexey Kuznetsov, linux-net
Joel Soete wrote:
> >gcc 3.3 decides to not believe you want this function inlined. probably
> >the right fix for this is to make this function static inline (you can
> >drop the `__' around inline, it's not necessary). This is also the case
> >for linux 2.5.
> >
> Right Willy that allow to compile :)
>
> Unfortunately it failled to boot :_( with following dump:
> Freeing unused kernel memory: 246k freed
> ......
> Submitted to dump_analyser.sh, I obtain:
>
> IAOQ = 10351b7c
> Func: __canonicalize_funcptr_for_compare, Off: 38, Addr: 0x10351b7c
> 10351b70: 2a 6b 50 00 addil 56800,r19,%r1
> 10351b74: 48 21 0c a8 ldw 654(r1),r1
> 10351b78: d4 60 1c 1e depwi 0,31,2,r3
> 10351b7c: 0c 60 10 94 ldw 0(sr0,r3),r20
>
> GR0 = 00000000
>
> GR1 = 103eee50
> Func: _GLOBAL_OFFSET_TABLE_, Off: 0, Addr: 0x103eee50
>
> GR2 = 101342f8
> Func: do_sigaction, Off: a8, Addr: 0x101342f8
I have the same problem with a gcc 3.3 compiled kernel. The kernel itself
completely comes up, and I even can call a static shell (something like
init=/bin/sash), but as soon as glibc is involved, the mentioned crash
occurs. Just to make it clear: I am able to use the builtin functions of
that shell (like ls) and this works.
This is independend from the kernel version (2.4 and 2.5 behave all the
same). The function __canonicalize_funcptr_for_compare seems to be newly
introduced in libgcc with gcc 3.3, and seems to be the cause of this error.
Berthold
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-18 18:14 ` b.gunreben
2003-03-18 18:53 ` John David Anglin
@ 2003-03-18 18:53 ` John David Anglin
2003-03-18 19:02 ` Randolph Chung
` (3 more replies)
1 sibling, 4 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-18 18:53 UTC (permalink / raw)
To: b.gunreben
Cc: jsoe0708, willy, tausq, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
> This is independend from the kernel version (2.4 and 2.5 behave all the
> same). The function __canonicalize_funcptr_for_compare seems to be newly
> introduced in libgcc with gcc 3.3, and seems to be the cause of this error.
Do you have the same problem with a 3.0.4 built kernel? I have been
using a 3.3 built glibc for some months now.
__canonicalize_funcptr_for_compare depends critically on the
the initial setup of function descriptors by the dynamic loader
and the trampoline in the dynamic loader used to resolve the
address of functions. This could easily break if someone
unknowing messes with the pa specific parts of the dynamic
loader or the setup of function descriptors.
I'm building glibc-2.3.1-15 and should know soon if something
has changed.
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] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-18 18:14 ` b.gunreben
@ 2003-03-18 18:53 ` John David Anglin
2003-03-18 18:53 ` John David Anglin
1 sibling, 0 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-18 18:53 UTC (permalink / raw)
To: b.gunreben
Cc: jsoe0708, willy, tausq, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
> This is independend from the kernel version (2.4 and 2.5 behave all the
> same). The function __canonicalize_funcptr_for_compare seems to be newly
> introduced in libgcc with gcc 3.3, and seems to be the cause of this error.
Do you have the same problem with a 3.0.4 built kernel? I have been
using a 3.3 built glibc for some months now.
__canonicalize_funcptr_for_compare depends critically on the
the initial setup of function descriptors by the dynamic loader
and the trampoline in the dynamic loader used to resolve the
address of functions. This could easily break if someone
unknowing messes with the pa specific parts of the dynamic
loader or the setup of function descriptors.
I'm building glibc-2.3.1-15 and should know soon if something
has changed.
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] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-18 18:53 ` John David Anglin
@ 2003-03-18 19:02 ` Randolph Chung
2003-03-18 19:16 ` John David Anglin
2003-03-18 19:16 ` John David Anglin
2003-03-18 19:02 ` Randolph Chung
` (2 subsequent siblings)
3 siblings, 2 replies; 64+ messages in thread
From: Randolph Chung @ 2003-03-18 19:02 UTC (permalink / raw)
To: John David Anglin
Cc: b.gunreben, jsoe0708, willy, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
> __canonicalize_funcptr_for_compare depends critically on the
> the initial setup of function descriptors by the dynamic loader
> and the trampoline in the dynamic loader used to resolve the
> address of functions. This could easily break if someone
> unknowing messes with the pa specific parts of the dynamic
> loader or the setup of function descriptors.
um, Dave, we are talking about kernel here right? so no dynamic loader
is involved.
or did i misnuderstand you?
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-18 18:53 ` John David Anglin
2003-03-18 19:02 ` Randolph Chung
@ 2003-03-18 19:02 ` Randolph Chung
2003-03-18 21:59 ` John David Anglin
2003-03-18 21:59 ` John David Anglin
3 siblings, 0 replies; 64+ messages in thread
From: Randolph Chung @ 2003-03-18 19:02 UTC (permalink / raw)
To: John David Anglin
Cc: b.gunreben, jsoe0708, willy, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
> __canonicalize_funcptr_for_compare depends critically on the
> the initial setup of function descriptors by the dynamic loader
> and the trampoline in the dynamic loader used to resolve the
> address of functions. This could easily break if someone
> unknowing messes with the pa specific parts of the dynamic
> loader or the setup of function descriptors.
um, Dave, we are talking about kernel here right? so no dynamic loader
is involved.
or did i misnuderstand you?
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-18 19:02 ` Randolph Chung
2003-03-18 19:16 ` John David Anglin
@ 2003-03-18 19:16 ` John David Anglin
2003-03-18 20:21 ` Randolph Chung
2003-03-18 20:21 ` Randolph Chung
1 sibling, 2 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-18 19:16 UTC (permalink / raw)
To: tausq
Cc: b.gunreben, jsoe0708, willy, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
> um, Dave, we are talking about kernel here right? so no dynamic loader
> is involved.
>
> or did i misnuderstand you?
> randolph
I believe that we were talking about a problem in in glibc's use
of __canonicalize_funcptr_for_compare with a gcc 3.3 compiled kernel.
In any program with static linkage, the plabel bit shouldn't be
set in a function descriptor pointer. In that case,
__canonicalize_funcptr_for_compare just returns the function
descriptor pointer. Things only get hairy when the dynamic loader
is involved and the routine has to figure out the address of
the function fixup in the dynamic loader.
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] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-18 19:02 ` Randolph Chung
@ 2003-03-18 19:16 ` John David Anglin
2003-03-18 19:16 ` John David Anglin
1 sibling, 0 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-18 19:16 UTC (permalink / raw)
To: tausq
Cc: b.gunreben, jsoe0708, willy, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
> um, Dave, we are talking about kernel here right? so no dynamic loader
> is involved.
>
> or did i misnuderstand you?
> randolph
I believe that we were talking about a problem in in glibc's use
of __canonicalize_funcptr_for_compare with a gcc 3.3 compiled kernel.
In any program with static linkage, the plabel bit shouldn't be
set in a function descriptor pointer. In that case,
__canonicalize_funcptr_for_compare just returns the function
descriptor pointer. Things only get hairy when the dynamic loader
is involved and the routine has to figure out the address of
the function fixup in the dynamic loader.
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] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-18 19:16 ` John David Anglin
2003-03-18 20:21 ` Randolph Chung
@ 2003-03-18 20:21 ` Randolph Chung
2003-03-18 20:55 ` John David Anglin
2003-03-18 20:55 ` John David Anglin
1 sibling, 2 replies; 64+ messages in thread
From: Randolph Chung @ 2003-03-18 20:21 UTC (permalink / raw)
To: John David Anglin
Cc: b.gunreben, jsoe0708, willy, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
> I believe that we were talking about a problem in in glibc's use
> of __canonicalize_funcptr_for_compare with a gcc 3.3 compiled kernel.
Quoting an earlier mail:
> IAOQ = 10351b7c
> Func: __canonicalize_funcptr_for_compare, Off: 38, Addr: 0x10351b7c
> 10351b70: 2a 6b 50 00 addil 56800,r19,%r1
> 10351b74: 48 21 0c a8 ldw 654(r1),r1
> 10351b78: d4 60 1c 1e depwi 0,31,2,r3
> 10351b7c: 0c 60 10 94 ldw 0(sr0,r3),r20
>
> GR0 = 00000000
>
> GR1 = 103eee50
> Func: _GLOBAL_OFFSET_TABLE_, Off: 0, Addr: 0x103eee50
>
> GR2 = 101342f8
> Func: do_sigaction, Off: a8, Addr: 0x101342f8
these are definitely kernel addresses....
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-18 19:16 ` John David Anglin
@ 2003-03-18 20:21 ` Randolph Chung
2003-03-18 20:21 ` Randolph Chung
1 sibling, 0 replies; 64+ messages in thread
From: Randolph Chung @ 2003-03-18 20:21 UTC (permalink / raw)
To: John David Anglin
Cc: b.gunreben, jsoe0708, willy, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
> I believe that we were talking about a problem in in glibc's use
> of __canonicalize_funcptr_for_compare with a gcc 3.3 compiled kernel.
Quoting an earlier mail:
> IAOQ = 10351b7c
> Func: __canonicalize_funcptr_for_compare, Off: 38, Addr: 0x10351b7c
> 10351b70: 2a 6b 50 00 addil 56800,r19,%r1
> 10351b74: 48 21 0c a8 ldw 654(r1),r1
> 10351b78: d4 60 1c 1e depwi 0,31,2,r3
> 10351b7c: 0c 60 10 94 ldw 0(sr0,r3),r20
>
> GR0 = 00000000
>
> GR1 = 103eee50
> Func: _GLOBAL_OFFSET_TABLE_, Off: 0, Addr: 0x103eee50
>
> GR2 = 101342f8
> Func: do_sigaction, Off: a8, Addr: 0x101342f8
these are definitely kernel addresses....
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-18 20:21 ` Randolph Chung
@ 2003-03-18 20:55 ` John David Anglin
2003-03-20 17:51 ` Joel Soete
2003-03-20 17:51 ` Joel Soete
2003-03-18 20:55 ` John David Anglin
1 sibling, 2 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-18 20:55 UTC (permalink / raw)
To: tausq
Cc: b.gunreben, jsoe0708, willy, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
> > I believe that we were talking about a problem in in glibc's use
> > of __canonicalize_funcptr_for_compare with a gcc 3.3 compiled kernel.
>
> Quoting an earlier mail:
> > IAOQ = 10351b7c
> > Func: __canonicalize_funcptr_for_compare, Off: 38, Addr: 0x10351b7c
> > 10351b70: 2a 6b 50 00 addil 56800,r19,%r1
> > 10351b74: 48 21 0c a8 ldw 654(r1),r1
> > 10351b78: d4 60 1c 1e depwi 0,31,2,r3
> > 10351b7c: 0c 60 10 94 ldw 0(sr0,r3),r20
> >
> > GR0 = 00000000
> >
> > GR1 = 103eee50
> > Func: _GLOBAL_OFFSET_TABLE_, Off: 0, Addr: 0x103eee50
> >
> > GR2 = 101342f8
> > Func: do_sigaction, Off: a8, Addr: 0x101342f8
>
> these are definitely kernel addresses....
Right. I see the code that's causing the problem in kernel/signal.c:
if (k->sa.sa_handler == SIG_IGN
|| (k->sa.sa_handler == SIG_DFL
You don't want to canonicalize k->sa.sa_handler here, so a cast to
void * or something is needed. The PA is the only port that I am
aware of that needs to canonicalize function pointers.
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] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-18 20:21 ` Randolph Chung
2003-03-18 20:55 ` John David Anglin
@ 2003-03-18 20:55 ` John David Anglin
1 sibling, 0 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-18 20:55 UTC (permalink / raw)
To: tausq
Cc: b.gunreben, jsoe0708, willy, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
> > I believe that we were talking about a problem in in glibc's use
> > of __canonicalize_funcptr_for_compare with a gcc 3.3 compiled kernel.
>
> Quoting an earlier mail:
> > IAOQ = 10351b7c
> > Func: __canonicalize_funcptr_for_compare, Off: 38, Addr: 0x10351b7c
> > 10351b70: 2a 6b 50 00 addil 56800,r19,%r1
> > 10351b74: 48 21 0c a8 ldw 654(r1),r1
> > 10351b78: d4 60 1c 1e depwi 0,31,2,r3
> > 10351b7c: 0c 60 10 94 ldw 0(sr0,r3),r20
> >
> > GR0 = 00000000
> >
> > GR1 = 103eee50
> > Func: _GLOBAL_OFFSET_TABLE_, Off: 0, Addr: 0x103eee50
> >
> > GR2 = 101342f8
> > Func: do_sigaction, Off: a8, Addr: 0x101342f8
>
> these are definitely kernel addresses....
Right. I see the code that's causing the problem in kernel/signal.c:
if (k->sa.sa_handler == SIG_IGN
|| (k->sa.sa_handler == SIG_DFL
You don't want to canonicalize k->sa.sa_handler here, so a cast to
void * or something is needed. The PA is the only port that I am
aware of that needs to canonicalize function pointers.
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] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-18 18:53 ` John David Anglin
2003-03-18 19:02 ` Randolph Chung
2003-03-18 19:02 ` Randolph Chung
@ 2003-03-18 21:59 ` John David Anglin
2003-03-18 21:59 ` John David Anglin
3 siblings, 0 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-18 21:59 UTC (permalink / raw)
To: John David Anglin; +Cc: carlos, parisc, debian-hppa
> I'm building glibc-2.3.1-15 and should know soon if something
> has changed.
The enclosed patch to pt-initfini.c for gcc 3.3 is missing from -15.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
--- pt-initfini.c.orig 2002-08-26 21:52:36.000000000 -0700
+++ pt-initfini.c 2003-03-18 12:11:20.000000000 -0800
@@ -41,70 +41,70 @@
and epilogues. Therefore we write these in assembly to make sure
they do the right thing. */
-__asm__ ("
-
-#include \"defs.h\"
-
-/*@HEADER_ENDS*/
-
-/*@_init_PROLOG_BEGINS*/
- .section .init
- .align 4
- .globl _init
- .type _init,@function
-_init:
- stw %rp,-20(%sp)
- stwm %r4,64(%sp)
- stw %r19,-32(%sp)
- bl __pthread_initialize_minimal,%rp
- copy %r19,%r4 /* delay slot */
- copy %r4,%r19
-/*@_init_PROLOG_ENDS*/
-
-/*@_init_EPILOG_BEGINS*/
-/* Here is the tail end of _init. */
- .section .init
- ldw -84(%sp),%rp
- copy %r4,%r19
- bv %r0(%rp)
-_end_init:
- ldwm -64(%sp),%r4
-
-/* Our very own unwind info, because the assembler can't handle
- functions split into two or more pieces. */
- .section .PARISC.unwind,\"a\",@progbits
- .extern _init
- .word _init, _end_init
- .byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08
-
-/*@_init_EPILOG_ENDS*/
-
-/*@_fini_PROLOG_BEGINS*/
- .section .fini
- .align 4
- .globl _fini
- .type _fini,@function
-_fini:
- stw %rp,-20(%sp)
- stwm %r4,64(%sp)
- stw %r19,-32(%sp)
- copy %r19,%r4
-/*@_fini_PROLOG_ENDS*/
-
-/*@_fini_EPILOG_BEGINS*/
- .section .fini
- ldw -84(%sp),%rp
- copy %r4,%r19
- bv %r0(%rp)
-_end_fini:
- ldwm -64(%sp),%r4
-
- .section .PARISC.unwind,\"a\",@progbits
- .extern _fini
- .word _fini, _end_fini
- .byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08
-
-/*@_fini_EPILOG_ENDS*/
-
-/*@TRAILER_BEGINS*/
+__asm__ (" \n\
+ \n\
+#include \"defs.h\" \n\
+ \n\
+/*@HEADER_ENDS*/ \n\
+ \n\
+/*@_init_PROLOG_BEGINS*/ \n\
+ .section .init \n\
+ .align 4 \n\
+ .globl _init \n\
+ .type _init,@function \n\
+_init: \n\
+ stw %rp,-20(%sp) \n\
+ stwm %r4,64(%sp) \n\
+ stw %r19,-32(%sp) \n\
+ bl __pthread_initialize_minimal,%rp \n\
+ copy %r19,%r4 /* delay slot */ \n\
+ copy %r4,%r19 \n\
+/*@_init_PROLOG_ENDS*/ \n\
+ \n\
+/*@_init_EPILOG_BEGINS*/ \n\
+/* Here is the tail end of _init. */ \n\
+ .section .init \n\
+ ldw -84(%sp),%rp \n\
+ copy %r4,%r19 \n\
+ bv %r0(%rp) \n\
+_end_init: \n\
+ ldwm -64(%sp),%r4 \n\
+ \n\
+/* Our very own unwind info, because the assembler can't handle \n\
+ functions split into two or more pieces. */ \n\
+ .section .PARISC.unwind,\"a\",@progbits \n\
+ .extern _init \n\
+ .word _init, _end_init \n\
+ .byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08 \n\
+ \n\
+/*@_init_EPILOG_ENDS*/ \n\
+ \n\
+/*@_fini_PROLOG_BEGINS*/ \n\
+ .section .fini \n\
+ .align 4 \n\
+ .globl _fini \n\
+ .type _fini,@function \n\
+_fini: \n\
+ stw %rp,-20(%sp) \n\
+ stwm %r4,64(%sp) \n\
+ stw %r19,-32(%sp) \n\
+ copy %r19,%r4 \n\
+/*@_fini_PROLOG_ENDS*/ \n\
+ \n\
+/*@_fini_EPILOG_BEGINS*/ \n\
+ .section .fini \n\
+ ldw -84(%sp),%rp \n\
+ copy %r4,%r19 \n\
+ bv %r0(%rp) \n\
+_end_fini: \n\
+ ldwm -64(%sp),%r4 \n\
+ \n\
+ .section .PARISC.unwind,\"a\",@progbits \n\
+ .extern _fini \n\
+ .word _fini, _end_fini \n\
+ .byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08 \n\
+ \n\
+/*@_fini_EPILOG_ENDS*/ \n\
+ \n\
+/*@TRAILER_BEGINS*/ \n\
");
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-18 18:53 ` John David Anglin
` (2 preceding siblings ...)
2003-03-18 21:59 ` John David Anglin
@ 2003-03-18 21:59 ` John David Anglin
3 siblings, 0 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-18 21:59 UTC (permalink / raw)
To: John David Anglin; +Cc: carlos, parisc, debian-hppa
> I'm building glibc-2.3.1-15 and should know soon if something
> has changed.
The enclosed patch to pt-initfini.c for gcc 3.3 is missing from -15.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
--- pt-initfini.c.orig 2002-08-26 21:52:36.000000000 -0700
+++ pt-initfini.c 2003-03-18 12:11:20.000000000 -0800
@@ -41,70 +41,70 @@
and epilogues. Therefore we write these in assembly to make sure
they do the right thing. */
-__asm__ ("
-
-#include \"defs.h\"
-
-/*@HEADER_ENDS*/
-
-/*@_init_PROLOG_BEGINS*/
- .section .init
- .align 4
- .globl _init
- .type _init,@function
-_init:
- stw %rp,-20(%sp)
- stwm %r4,64(%sp)
- stw %r19,-32(%sp)
- bl __pthread_initialize_minimal,%rp
- copy %r19,%r4 /* delay slot */
- copy %r4,%r19
-/*@_init_PROLOG_ENDS*/
-
-/*@_init_EPILOG_BEGINS*/
-/* Here is the tail end of _init. */
- .section .init
- ldw -84(%sp),%rp
- copy %r4,%r19
- bv %r0(%rp)
-_end_init:
- ldwm -64(%sp),%r4
-
-/* Our very own unwind info, because the assembler can't handle
- functions split into two or more pieces. */
- .section .PARISC.unwind,\"a\",@progbits
- .extern _init
- .word _init, _end_init
- .byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08
-
-/*@_init_EPILOG_ENDS*/
-
-/*@_fini_PROLOG_BEGINS*/
- .section .fini
- .align 4
- .globl _fini
- .type _fini,@function
-_fini:
- stw %rp,-20(%sp)
- stwm %r4,64(%sp)
- stw %r19,-32(%sp)
- copy %r19,%r4
-/*@_fini_PROLOG_ENDS*/
-
-/*@_fini_EPILOG_BEGINS*/
- .section .fini
- ldw -84(%sp),%rp
- copy %r4,%r19
- bv %r0(%rp)
-_end_fini:
- ldwm -64(%sp),%r4
-
- .section .PARISC.unwind,\"a\",@progbits
- .extern _fini
- .word _fini, _end_fini
- .byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08
-
-/*@_fini_EPILOG_ENDS*/
-
-/*@TRAILER_BEGINS*/
+__asm__ (" \n\
+ \n\
+#include \"defs.h\" \n\
+ \n\
+/*@HEADER_ENDS*/ \n\
+ \n\
+/*@_init_PROLOG_BEGINS*/ \n\
+ .section .init \n\
+ .align 4 \n\
+ .globl _init \n\
+ .type _init,@function \n\
+_init: \n\
+ stw %rp,-20(%sp) \n\
+ stwm %r4,64(%sp) \n\
+ stw %r19,-32(%sp) \n\
+ bl __pthread_initialize_minimal,%rp \n\
+ copy %r19,%r4 /* delay slot */ \n\
+ copy %r4,%r19 \n\
+/*@_init_PROLOG_ENDS*/ \n\
+ \n\
+/*@_init_EPILOG_BEGINS*/ \n\
+/* Here is the tail end of _init. */ \n\
+ .section .init \n\
+ ldw -84(%sp),%rp \n\
+ copy %r4,%r19 \n\
+ bv %r0(%rp) \n\
+_end_init: \n\
+ ldwm -64(%sp),%r4 \n\
+ \n\
+/* Our very own unwind info, because the assembler can't handle \n\
+ functions split into two or more pieces. */ \n\
+ .section .PARISC.unwind,\"a\",@progbits \n\
+ .extern _init \n\
+ .word _init, _end_init \n\
+ .byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08 \n\
+ \n\
+/*@_init_EPILOG_ENDS*/ \n\
+ \n\
+/*@_fini_PROLOG_BEGINS*/ \n\
+ .section .fini \n\
+ .align 4 \n\
+ .globl _fini \n\
+ .type _fini,@function \n\
+_fini: \n\
+ stw %rp,-20(%sp) \n\
+ stwm %r4,64(%sp) \n\
+ stw %r19,-32(%sp) \n\
+ copy %r19,%r4 \n\
+/*@_fini_PROLOG_ENDS*/ \n\
+ \n\
+/*@_fini_EPILOG_BEGINS*/ \n\
+ .section .fini \n\
+ ldw -84(%sp),%rp \n\
+ copy %r4,%r19 \n\
+ bv %r0(%rp) \n\
+_end_fini: \n\
+ ldwm -64(%sp),%r4 \n\
+ \n\
+ .section .PARISC.unwind,\"a\",@progbits \n\
+ .extern _fini \n\
+ .word _fini, _end_fini \n\
+ .byte 0x08, 0x01, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08 \n\
+ \n\
+/*@_fini_EPILOG_ENDS*/ \n\
+ \n\
+/*@TRAILER_BEGINS*/ \n\
");
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-18 20:55 ` John David Anglin
@ 2003-03-20 17:51 ` Joel Soete
2003-03-20 18:13 ` John David Anglin
2003-03-20 18:13 ` John David Anglin
2003-03-20 17:51 ` Joel Soete
1 sibling, 2 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-20 17:51 UTC (permalink / raw)
To: John David Anglin, tausq
Cc: b.gunreben, willy, doko, debian-hppa, debian-gcc, parisc-linux,
kuznet, linux-net
>>
>> these are definitely kernel addresses....
>
>Right. I see the code that's causing the problem in kernel/signal.c:
>
> if (k->sa.sa_handler == SIG_IGN
> || (k->sa.sa_handler == SIG_DFL
>
>
>You don't want to canonicalize k->sa.sa_handler here, so a cast to
>void * or something is needed. The PA is the only port that I am
>aware of that needs to canonicalize function pointers.
>
Well I try to test some:
--- signal.h.orig 2003-03-20 15:12:24.000000000 +0100
+++ signal.h 2003-03-20 15:11:47.000000000 +0100
@@ -106,9 +106,15 @@
#define SIG_UNBLOCK 1 /* for unblocking signals */
#define SIG_SETMASK 2 /* for setting the signal mask */
+#if __GNUC__ == 3 && __GNUC_MINOR__ >= 3 || __GNUC__ > 3
+#define SIG_DFL (0) /* default signal handling
*/
+#define SIG_IGN (1) /* ignore signal */
+#define SIG_ERR (-1) /* error return from signal
*/
+#else
#define SIG_DFL ((__sighandler_t)0) /* default signal handling
*/
#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
#define SIG_ERR ((__sighandler_t)-1) /* error return from signal
*/
+#endif
# ifndef __ASSEMBLY__
Unfortunaltely, I don't actualy know if it could help because I update kernel
src to pa31 and the problem move to:
IAOQ = 102f1e6c
Func: $lcfu_loop, Off: 0, Addr: 0x102f1e6c
102f1e60: 08 16 32 40 or,<> r22,r0,r0
102f1e64: 08 00 02 41 copy r0,r1
102f1e68: 00 01 58 20 mtsp r1,sr1
102f1e6c <$lcfu_loop>:
102f1e6c: 0f 22 50 21 ldb,ma 1(sr1,r25),r1
102f1e70: af 1f 3f ed addib,<> -1,r24,102f1e6c <$lcfu_loop>
GR0 = 00000000
GR1 = 000000dd
GR2 = 1016dd94
Func: copy_mount_options, Off: 70, Addr: 0x1016dd94
1016dd90: 08 04 02 58 copy r4,r24
1016dd94: 0b 84 04 04 sub r4,ret0,r4
1016dd98: 08 03 02 5a copy r3,r26
1016dd9c: 84 80 20 70 cmpib,= 0,r4,1016dddc <copy_mount_options+0xb8>
GR3 = 1ffb9000
GR4 = 00001000
GR5 = 1ffff005
GR6 = 00001000
GR7 = 107c8788
GR8 = 103ab810
Func: packet_init, Off: 3c, Addr: 0x103ab810
103ab810: 87 80 20 18 cmpib,= 0,ret0,103ab824 <packet_init+0x50>
103ab814: 22 72 12 06 ldil 10324800,r19
103ab818: 4a 74 09 48 ldw 4a4(r19),r20
103ab81c: 6b 80 00 68 stw r0,34(ret0)
GR9 = 103e0010
Func: Version_132116, Off: 0, Addr: 0x103e0010
GR10 = 10418010
Func: blkdevs, Off: 4e4, Addr: 0x10418010
GR11 = 102f8000
Func: ic_bootp_cookie, Off: 440, Addr: 0x102f8000
GR12 = 10340810
Func: syscall_names, Off: 49c, Addr: 0x10340810
GR13 = 10413810
Func: log_buf, Off: 79e4, Addr: 0x10413810
GR14 = 00000000
GR15 = f0400004
GR16 = f00008c4
GR17 = f000017c
GR18 = f0000174
GR19 = 107c8000
GR20 = bffd00d5
GR21 = f0047000
GR22 = 00000000
GR23 = 00000000
GR24 = 00000005
GR25 = 20000000
GR26 = 1ffb9ffb
GR27 = 10330010
Func: $global$, Off: 0, Addr: 0x10330010
GR28 = fffffff4
GR29 = 80dea173
GR30 = 107c8880
GR31 = 101563e4
Func: blkdev_put, Off: 1f4, Addr: 0x101563e4
101562bc: 86 60 22 50 cmpib,= 0,r19,101563ec <blkdev_put+0x1fc>
101563e0: 08 1f 02 42 copy r31,rp
101563e4: c9 1c 9d d5 movb,tr ret0,r8,101562d4 <blkdev_put+0xe4>
101563e8: 48 b3 00 30 ldw 18(r5),r19
101563ec: 08 05 02 5a copy r5,r26
Kernel symbols on the stack:
[<1016dd60>]: Func: copy_mount_options, Off: 3c, Addr: 0x1016dd60
[<1016e5e8>]: Func: sys_mount, Off: 30, Addr: 0x1016e5e8
[<101004b8>]: Func: prepare_namespace, Off: bc, Addr: 0x101004b8
[<10100240>]: Func: init, Off: 58, Addr: 0x10100240
[<10108c4c>]: Func: ret_from_kernel_thread, Off: 18, Addr: 0x10108c4c
[<10108cf4>]: Func: _switch_to_ret, Off: 0, Addr: 0x10108cf4
[<1012187c>]: Func: call_console_drivers, Off: b8, Addr: 0x1012187c
[<1012187c>]: Func: call_console_drivers, Off: b8, Addr: 0x1012187c
[<10121d2c>]: Func: release_console_sem, Off: 50, Addr: 0x10121d2c
[<10121b94>]: Func: printk, Off: 1f0, Addr: 0x10121b94
[<101001e8>]: Func: init, Off: 0, Addr: 0x101001e8
[<10126488>]: Func: it_real_fn, Off: 0, Addr: 0x10126488
Any other additional idea?
Thanks,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-18 20:55 ` John David Anglin
2003-03-20 17:51 ` Joel Soete
@ 2003-03-20 17:51 ` Joel Soete
1 sibling, 0 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-20 17:51 UTC (permalink / raw)
To: John David Anglin, tausq
Cc: b.gunreben, willy, doko, debian-hppa, debian-gcc, parisc-linux,
kuznet, linux-net
>>
>> these are definitely kernel addresses....
>
>Right. I see the code that's causing the problem in kernel/signal.c:
>
> if (k->sa.sa_handler == SIG_IGN
> || (k->sa.sa_handler == SIG_DFL
>
>
>You don't want to canonicalize k->sa.sa_handler here, so a cast to
>void * or something is needed. The PA is the only port that I am
>aware of that needs to canonicalize function pointers.
>
Well I try to test some:
--- signal.h.orig 2003-03-20 15:12:24.000000000 +0100
+++ signal.h 2003-03-20 15:11:47.000000000 +0100
@@ -106,9 +106,15 @@
#define SIG_UNBLOCK 1 /* for unblocking signals */
#define SIG_SETMASK 2 /* for setting the signal mask */
+#if __GNUC__ == 3 && __GNUC_MINOR__ >= 3 || __GNUC__ > 3
+#define SIG_DFL (0) /* default signal handling
*/
+#define SIG_IGN (1) /* ignore signal */
+#define SIG_ERR (-1) /* error return from signal
*/
+#else
#define SIG_DFL ((__sighandler_t)0) /* default signal handling
*/
#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
#define SIG_ERR ((__sighandler_t)-1) /* error return from signal
*/
+#endif
# ifndef __ASSEMBLY__
Unfortunaltely, I don't actualy know if it could help because I update kernel
src to pa31 and the problem move to:
IAOQ = 102f1e6c
Func: $lcfu_loop, Off: 0, Addr: 0x102f1e6c
102f1e60: 08 16 32 40 or,<> r22,r0,r0
102f1e64: 08 00 02 41 copy r0,r1
102f1e68: 00 01 58 20 mtsp r1,sr1
102f1e6c <$lcfu_loop>:
102f1e6c: 0f 22 50 21 ldb,ma 1(sr1,r25),r1
102f1e70: af 1f 3f ed addib,<> -1,r24,102f1e6c <$lcfu_loop>
GR0 = 00000000
GR1 = 000000dd
GR2 = 1016dd94
Func: copy_mount_options, Off: 70, Addr: 0x1016dd94
1016dd90: 08 04 02 58 copy r4,r24
1016dd94: 0b 84 04 04 sub r4,ret0,r4
1016dd98: 08 03 02 5a copy r3,r26
1016dd9c: 84 80 20 70 cmpib,= 0,r4,1016dddc <copy_mount_options+0xb8>
GR3 = 1ffb9000
GR4 = 00001000
GR5 = 1ffff005
GR6 = 00001000
GR7 = 107c8788
GR8 = 103ab810
Func: packet_init, Off: 3c, Addr: 0x103ab810
103ab810: 87 80 20 18 cmpib,= 0,ret0,103ab824 <packet_init+0x50>
103ab814: 22 72 12 06 ldil 10324800,r19
103ab818: 4a 74 09 48 ldw 4a4(r19),r20
103ab81c: 6b 80 00 68 stw r0,34(ret0)
GR9 = 103e0010
Func: Version_132116, Off: 0, Addr: 0x103e0010
GR10 = 10418010
Func: blkdevs, Off: 4e4, Addr: 0x10418010
GR11 = 102f8000
Func: ic_bootp_cookie, Off: 440, Addr: 0x102f8000
GR12 = 10340810
Func: syscall_names, Off: 49c, Addr: 0x10340810
GR13 = 10413810
Func: log_buf, Off: 79e4, Addr: 0x10413810
GR14 = 00000000
GR15 = f0400004
GR16 = f00008c4
GR17 = f000017c
GR18 = f0000174
GR19 = 107c8000
GR20 = bffd00d5
GR21 = f0047000
GR22 = 00000000
GR23 = 00000000
GR24 = 00000005
GR25 = 20000000
GR26 = 1ffb9ffb
GR27 = 10330010
Func: $global$, Off: 0, Addr: 0x10330010
GR28 = fffffff4
GR29 = 80dea173
GR30 = 107c8880
GR31 = 101563e4
Func: blkdev_put, Off: 1f4, Addr: 0x101563e4
101562bc: 86 60 22 50 cmpib,= 0,r19,101563ec <blkdev_put+0x1fc>
101563e0: 08 1f 02 42 copy r31,rp
101563e4: c9 1c 9d d5 movb,tr ret0,r8,101562d4 <blkdev_put+0xe4>
101563e8: 48 b3 00 30 ldw 18(r5),r19
101563ec: 08 05 02 5a copy r5,r26
Kernel symbols on the stack:
[<1016dd60>]: Func: copy_mount_options, Off: 3c, Addr: 0x1016dd60
[<1016e5e8>]: Func: sys_mount, Off: 30, Addr: 0x1016e5e8
[<101004b8>]: Func: prepare_namespace, Off: bc, Addr: 0x101004b8
[<10100240>]: Func: init, Off: 58, Addr: 0x10100240
[<10108c4c>]: Func: ret_from_kernel_thread, Off: 18, Addr: 0x10108c4c
[<10108cf4>]: Func: _switch_to_ret, Off: 0, Addr: 0x10108cf4
[<1012187c>]: Func: call_console_drivers, Off: b8, Addr: 0x1012187c
[<1012187c>]: Func: call_console_drivers, Off: b8, Addr: 0x1012187c
[<10121d2c>]: Func: release_console_sem, Off: 50, Addr: 0x10121d2c
[<10121b94>]: Func: printk, Off: 1f0, Addr: 0x10121b94
[<101001e8>]: Func: init, Off: 0, Addr: 0x101001e8
[<10126488>]: Func: it_real_fn, Off: 0, Addr: 0x10126488
Any other additional idea?
Thanks,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-12 17:53 ` Joel Soete
2003-03-14 12:48 ` Joel Soete
2003-03-14 12:48 ` Joel Soete
@ 2003-03-20 18:06 ` Joel Soete
2003-03-20 18:06 ` Joel Soete
3 siblings, 0 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-20 18:06 UTC (permalink / raw)
To: Randolph Chung; +Cc: Matthias Klose, debian-hppa, debian-gcc, parisc-linux
Hi Randolph,
>>
>>> I am looking to rebuild gcc-3.3 64bits to rebuild the last kernel 2.4
>to
>>> conitnue my investigation about smp(64bits) [which failled to boot on
>a
>>N4000
>>> when compile d with gcc-3.2 get from unofficial-debs].
>>
>>If you are working on 64-bit, I would advise staying with 3.0.4 for
>>now.... no one has tested 3.3 hppa64-linux-gcc at all, so it will just
>>be introducing more unknowns into the problem.
>>
>Ok I am gonna try to rebuild it with gcc-3.0.
>
Well just a small follow up to say that I had not much success with gcc-3.0
(64bits).
Also I did some other test:
this same kernel (smp64) boots well on a b2k (pa8600 up),
it boots also well on the N4000 when I 'disable' the second cpu?
(It seems to fail before 'Add swap...' but not sure because I notice that
all boot blabla is not output to the console [ie compare to dmesg nothing
is print out before 'sym53c8xx: at PCI...']?)
I will so try to ack dump_analyser to see how may I got analyse of the piminfo
which I grab from the two processor.
See you,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-12 17:53 ` Joel Soete
` (2 preceding siblings ...)
2003-03-20 18:06 ` Joel Soete
@ 2003-03-20 18:06 ` Joel Soete
3 siblings, 0 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-20 18:06 UTC (permalink / raw)
To: Randolph Chung; +Cc: Matthias Klose, debian-hppa, debian-gcc, parisc-linux
Hi Randolph,
>>
>>> I am looking to rebuild gcc-3.3 64bits to rebuild the last kernel 2.4
>to
>>> conitnue my investigation about smp(64bits) [which failled to boot on
>a
>>N4000
>>> when compile d with gcc-3.2 get from unofficial-debs].
>>
>>If you are working on 64-bit, I would advise staying with 3.0.4 for
>>now.... no one has tested 3.3 hppa64-linux-gcc at all, so it will just
>>be introducing more unknowns into the problem.
>>
>Ok I am gonna try to rebuild it with gcc-3.0.
>
Well just a small follow up to say that I had not much success with gcc-3.0
(64bits).
Also I did some other test:
this same kernel (smp64) boots well on a b2k (pa8600 up),
it boots also well on the N4000 when I 'disable' the second cpu?
(It seems to fail before 'Add swap...' but not sure because I notice that
all boot blabla is not output to the console [ie compare to dmesg nothing
is print out before 'sym53c8xx: at PCI...']?)
I will so try to ack dump_analyser to see how may I got analyse of the piminfo
which I grab from the two processor.
See you,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-20 17:51 ` Joel Soete
@ 2003-03-20 18:13 ` John David Anglin
2003-03-20 18:23 ` John David Anglin
2003-03-20 18:23 ` John David Anglin
2003-03-20 18:13 ` John David Anglin
1 sibling, 2 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-20 18:13 UTC (permalink / raw)
To: Joel Soete
Cc: tausq, b.gunreben, willy, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
> >>
> >> these are definitely kernel addresses....
> >
> >Right. I see the code that's causing the problem in kernel/signal.c:
> >
> > if (k->sa.sa_handler == SIG_IGN
> > || (k->sa.sa_handler == SIG_DFL
> >
> >
> >You don't want to canonicalize k->sa.sa_handler here, so a cast to
> >void * or something is needed. The PA is the only port that I am
> >aware of that needs to canonicalize function pointers.
> >
> Well I try to test some:
> --- signal.h.orig 2003-03-20 15:12:24.000000000 +0100
> +++ signal.h 2003-03-20 15:11:47.000000000 +0100
> @@ -106,9 +106,15 @@
> #define SIG_UNBLOCK 1 /* for unblocking signals */
> #define SIG_SETMASK 2 /* for setting the signal mask */
>
> +#if __GNUC__ == 3 && __GNUC_MINOR__ >= 3 || __GNUC__ > 3
> +#define SIG_DFL (0) /* default signal handling
> */
> +#define SIG_IGN (1) /* ignore signal */
> +#define SIG_ERR (-1) /* error return from signal
> */
> +#else
> #define SIG_DFL ((__sighandler_t)0) /* default signal handling
> */
> #define SIG_IGN ((__sighandler_t)1) /* ignore signal */
> #define SIG_ERR ((__sighandler_t)-1) /* error return from signal
> */
> +#endif
No, don't do that. SIG_DFL, SIG_IGN and SIG_ERR expand to compound
literals. Look at the assembly output from the following little
program (gcc -S) with and without the "void *" cast.
typedef int (*__sighandler_t)(void);
#define SIG_IGN ((__sighandler_t)1)
int foo (__sighandler_t g)
{
return g == (void *)SIG_IGN;
}
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] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-20 17:51 ` Joel Soete
2003-03-20 18:13 ` John David Anglin
@ 2003-03-20 18:13 ` John David Anglin
1 sibling, 0 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-20 18:13 UTC (permalink / raw)
To: Joel Soete
Cc: tausq, b.gunreben, willy, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
> >>
> >> these are definitely kernel addresses....
> >
> >Right. I see the code that's causing the problem in kernel/signal.c:
> >
> > if (k->sa.sa_handler == SIG_IGN
> > || (k->sa.sa_handler == SIG_DFL
> >
> >
> >You don't want to canonicalize k->sa.sa_handler here, so a cast to
> >void * or something is needed. The PA is the only port that I am
> >aware of that needs to canonicalize function pointers.
> >
> Well I try to test some:
> --- signal.h.orig 2003-03-20 15:12:24.000000000 +0100
> +++ signal.h 2003-03-20 15:11:47.000000000 +0100
> @@ -106,9 +106,15 @@
> #define SIG_UNBLOCK 1 /* for unblocking signals */
> #define SIG_SETMASK 2 /* for setting the signal mask */
>
> +#if __GNUC__ == 3 && __GNUC_MINOR__ >= 3 || __GNUC__ > 3
> +#define SIG_DFL (0) /* default signal handling
> */
> +#define SIG_IGN (1) /* ignore signal */
> +#define SIG_ERR (-1) /* error return from signal
> */
> +#else
> #define SIG_DFL ((__sighandler_t)0) /* default signal handling
> */
> #define SIG_IGN ((__sighandler_t)1) /* ignore signal */
> #define SIG_ERR ((__sighandler_t)-1) /* error return from signal
> */
> +#endif
No, don't do that. SIG_DFL, SIG_IGN and SIG_ERR expand to compound
literals. Look at the assembly output from the following little
program (gcc -S) with and without the "void *" cast.
typedef int (*__sighandler_t)(void);
#define SIG_IGN ((__sighandler_t)1)
int foo (__sighandler_t g)
{
return g == (void *)SIG_IGN;
}
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] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-16 23:17 ` Michael S.Zick
@ 2003-03-20 18:20 ` Joel Soete
0 siblings, 0 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-20 18:20 UTC (permalink / raw)
To: mszick, Matthew Wilcox; +Cc: parisc-linux
Hi Mike,
>On Sunday 16 March 2003 05:06 pm, Matthew Wilcox wrote:
>> On Sun, Mar 16, 2003 at 04:52:19PM -0600, Michael S. Zick wrote:
>> > On Friday 14 March 2003 07:17 am, Matthew Wilcox wrote:
>> > > net/core/rtnetlink.c:extern __inline__ int rtnetlink_rcv_skb(struct
>> > > sk_buff *skb)
>> >
>> > Stolen from the GCC thread on 3.x.x inlining...
>> > - - - - GCC - - - - -
>> > For the record, the kernel doesn't need this any more. Go check 2.5;
>> > new versions of <linux/compiler.h> contain this line:
>> > #define inline __inline__ __attribute__((always_inline))
>> > - - - - - - - - - - - -
>> > That forces GCC to ignore its changed inline metrics and simply inline
>> > the function.
>>
>> Yes, but...
>>
>> * Joel's using 2.4, not 2.5
>Exactly why I mentioned it.
>
>> * #define inline doesn't help functions which are marked as __inline__
>If he follows your suggestion of dropping the "__" around "inline" it will.
>
>>
>> This isn't a function which absolutely needs to be inlined. It can
>> be `static inline' and gcc can do whatever it likes then.
>The subject is getting a lot of discussion on the GCC list. I only mentioned
>this one workaround so that Joel could get on with his work before the issue
>is settled on the GCC list.
>
Good idea: I (just sorry for delay) back port this stuff for 2.5 and it works
fine.
Thanks a lot,
Joel
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-20 18:13 ` John David Anglin
@ 2003-03-20 18:23 ` John David Anglin
2003-03-21 12:44 ` Joel Soete
2003-03-21 12:44 ` Joel Soete
2003-03-20 18:23 ` John David Anglin
1 sibling, 2 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-20 18:23 UTC (permalink / raw)
To: John David Anglin
Cc: jsoe0708, tausq, b.gunreben, willy, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
> No, don't do that. SIG_DFL, SIG_IGN and SIG_ERR expand to compound
> literals.
Sorry, that part is wrong. Anyway, just leave the macro defines as
is and cast them where used to void *. This causes the conversion
of the other operand to void * and function pointer conicalization
won't be done (6.5.9, paragraph 5).
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] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-20 18:13 ` John David Anglin
2003-03-20 18:23 ` John David Anglin
@ 2003-03-20 18:23 ` John David Anglin
1 sibling, 0 replies; 64+ messages in thread
From: John David Anglin @ 2003-03-20 18:23 UTC (permalink / raw)
To: John David Anglin
Cc: jsoe0708, tausq, b.gunreben, willy, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
> No, don't do that. SIG_DFL, SIG_IGN and SIG_ERR expand to compound
> literals.
Sorry, that part is wrong. Anyway, just leave the macro defines as
is and cast them where used to void *. This causes the conversion
of the other operand to void * and function pointer conicalization
won't be done (6.5.9, paragraph 5).
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] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-20 18:23 ` John David Anglin
@ 2003-03-21 12:44 ` Joel Soete
2003-03-21 13:36 ` Matthew Wilcox
2003-03-21 12:44 ` Joel Soete
1 sibling, 1 reply; 64+ messages in thread
From: Joel Soete @ 2003-03-21 12:44 UTC (permalink / raw)
To: John David Anglin, dave
Cc: tausq, b.gunreben, willy, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
[-- Attachment #1: Type: text/plain, Size: 8303 bytes --]
Hi Dave,
>
>Sorry, that part is wrong. Anyway, just leave the macro defines as
>is and cast them where used to void *. This causes the conversion
>of the other operand to void * and function pointer conicalization
>won't be done (6.5.9, paragraph 5).
>
you have definitely right.
I test following work-around against 2.4.20-pa32 with latest dpkg gcc-3.3
(3.3-0pre2) and it boot well know:
=====
diff -Naur linux-2.4.20-pa32/Makefile linux-2.4.20-pa32-gcc33/Makefile
--- linux-2.4.20-pa32/Makefile 2003-03-21 12:17:41.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/Makefile 2003-03-21 12:19:06.000000000 +0100
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 20
-EXTRAVERSION = -pa32
+EXTRAVERSION = -pa33
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
diff -Naur linux-2.4.20-pa32/arch/parisc/kernel/signal.c linux-2.4.20-pa32-gcc33/arch/parisc/kernel/signal.c
--- linux-2.4.20-pa32/arch/parisc/kernel/signal.c 2003-03-21 10:54:23.000000000
+0100
+++ linux-2.4.20-pa32-gcc33/arch/parisc/kernel/signal.c 2003-03-21 12:39:20.000000000
+0100
@@ -489,7 +489,11 @@
ka = ¤t->sig->action[signr-1];
DBG(("sa_handler is %x\n",
(unsigned int) ka->sa.sa_handler));
+#if !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__
>= 1))
+ if (ka->sa.sa_handler == (void *)SIG_IGN) {
+#else
if (ka->sa.sa_handler == SIG_IGN) {
+#endif
if (signr != SIGCHLD)
continue;
while (sys_wait4(-1, NULL, WNOHANG, NULL) > 0)
@@ -497,7 +501,11 @@
continue;
}
+#if !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__
>= 1))
+ if (ka->sa.sa_handler == (void *)SIG_DFL) {
+#else
if (ka->sa.sa_handler == SIG_DFL) {
+#endif
int exit_code = signr;
/* Init gets no signals it doesn't want. */
diff -Naur linux-2.4.20-pa32/drivers/char/n_tty.c linux-2.4.20-pa32-gcc33/drivers/char/n_tty.c
--- linux-2.4.20-pa32/drivers/char/n_tty.c 2003-03-21 10:51:30.000000000
+0100
+++ linux-2.4.20-pa32-gcc33/drivers/char/n_tty.c 2003-03-21 12:34:35.000000000
+0100
@@ -810,7 +810,11 @@
int is_ignored(int sig)
{
return (sigismember(¤t->blocked, sig) ||
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ current->sig->action[sig-1].sa.sa_handler == (void *)SIG_IGN);
+#else
current->sig->action[sig-1].sa.sa_handler == SIG_IGN);
+#endif
}
static void n_tty_set_termios(struct tty_struct *tty, struct termios * old)
diff -Naur linux-2.4.20-pa32/fs/ncpfs/sock.c linux-2.4.20-pa32-gcc33/fs/ncpfs/sock.c
--- linux-2.4.20-pa32/fs/ncpfs/sock.c 2003-03-21 10:36:05.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/fs/ncpfs/sock.c 2003-03-21 12:35:37.000000000
+0100
@@ -466,9 +466,17 @@
What if we've blocked it ourselves? What about
alarms? Why, in fact, are we mucking with the
sigmask at all? -- r~ */
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (current->sig->action[SIGINT - 1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (current->sig->action[SIGINT - 1].sa.sa_handler == SIG_DFL)
+#endif
mask |= sigmask(SIGINT);
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (current->sig->action[SIGQUIT - 1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (current->sig->action[SIGQUIT - 1].sa.sa_handler == SIG_DFL)
+#endif
mask |= sigmask(SIGQUIT);
}
siginitsetinv(¤t->blocked, mask);
diff -Naur linux-2.4.20-pa32/fs/proc/array.c linux-2.4.20-pa32-gcc33/fs/proc/array.c
--- linux-2.4.20-pa32/fs/proc/array.c 2003-03-21 10:01:18.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/fs/proc/array.c 2003-03-21 12:36:44.000000000
+0100
@@ -231,9 +231,17 @@
if (p->sig) {
k = p->sig->action;
for (i = 1; i <= _NSIG; ++i, ++k) {
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (k->sa.sa_handler == (void *)SIG_IGN)
+#else
if (k->sa.sa_handler == SIG_IGN)
+#endif
sigaddset(ign, i);
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ else if (k->sa.sa_handler != (void *)SIG_DFL)
+#else
else if (k->sa.sa_handler != SIG_DFL)
+#endif
sigaddset(catch, i);
}
}
diff -Naur linux-2.4.20-pa32/include/linux/compiler.h linux-2.4.20-pa32-gcc33/include/linux/compiler.h
--- linux-2.4.20-pa32/include/linux/compiler.h 2003-03-21 12:31:39.000000000
+0100
+++ linux-2.4.20-pa32-gcc33/include/linux/compiler.h 2003-03-21 12:32:07.000000000
+0100
@@ -1,6 +1,12 @@
#ifndef __LINUX_COMPILER_H
#define __LINUX_COMPILER_H
+#if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
+#define inline __inline__ __attribute__((always_inline))
+#define __inline__ __inline__ __attribute__((always_inline))
+#define __inline __inline__ __attribute__((always_inline))
+#endif
+
/* Somewhere in the middle of the GCC 2.96 development cycle, we implemented
a mechanism by which the user can annotate likely branch directions and
expect the blocks to be reordered appropriately. Define __builtin_expect
diff -Naur linux-2.4.20-pa32/kernel/signal.c linux-2.4.20-pa32-gcc33/kernel/signal.c
--- linux-2.4.20-pa32/kernel/signal.c 2003-03-21 10:39:32.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/kernel/signal.c 2003-03-21 12:37:40.000000000
+0100
@@ -126,7 +126,11 @@
int i;
struct k_sigaction *ka = &t->sig->action[0];
for (i = _NSIG ; i != 0 ; i--) {
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (ka->sa.sa_handler != (void *)SIG_IGN)
+#else
if (ka->sa.sa_handler != SIG_IGN)
+#endif
ka->sa.sa_handler = SIG_DFL;
ka->sa.sa_flags = 0;
sigemptyset(&ka->sa.sa_mask);
@@ -572,7 +576,11 @@
return -ESRCH;
}
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (t->sig->action[sig-1].sa.sa_handler == (void *)SIG_IGN)
+#else
if (t->sig->action[sig-1].sa.sa_handler == SIG_IGN)
+#endif
t->sig->action[sig-1].sa.sa_handler = SIG_DFL;
sigdelset(&t->blocked, sig);
recalc_sigpending(t);
@@ -1094,8 +1102,13 @@
* the signal to be ignored.
*/
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (k->sa.sa_handler == (void *)SIG_IGN
+ || (k->sa.sa_handler == (void *)SIG_DFL
+#else
if (k->sa.sa_handler == SIG_IGN
|| (k->sa.sa_handler == SIG_DFL
+#endif
&& (sig == SIGCONT ||
sig == SIGCHLD ||
sig == SIGURG ||
diff -Naur linux-2.4.20-pa32/net/sunrpc/clnt.c linux-2.4.20-pa32-gcc33/net/sunrpc/clnt.c
--- linux-2.4.20-pa32/net/sunrpc/clnt.c 2003-03-21 10:46:28.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/net/sunrpc/clnt.c 2003-03-21 12:38:07.000000000
+0100
@@ -209,9 +209,17 @@
/* Turn off various signals */
if (clnt->cl_intr) {
struct k_sigaction *action = current->sig->action;
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (action[SIGINT-1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (action[SIGINT-1].sa.sa_handler == SIG_DFL)
+#endif
sigallow |= sigmask(SIGINT);
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (action[SIGQUIT-1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (action[SIGQUIT-1].sa.sa_handler == SIG_DFL)
+#endif
sigallow |= sigmask(SIGQUIT);
}
spin_lock_irqsave(¤t->sigmask_lock, irqflags);
=====
I could not be sure about __LP64__ condition because gcc-hppa62_3.3 do not
yet exist :(
Can some body else could test it more?
Joel
PS1: I hoppe it will stay just a temporary work-around; that is typical what
I hate: code depending of platform and more over compiler release :(
PS2: If I well understand the pa32 patch include the Alan patch concerning
ptrace vulnerability. Is there some simple mean to stress the solution on
hppa platform?
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
[-- Attachment #2: linux-2.4.20-pa32_gcc33.patch --]
[-- Type: application/octet-stream, Size: 7228 bytes --]
diff -Naur linux-2.4.20-pa32/Makefile linux-2.4.20-pa32-gcc33/Makefile
--- linux-2.4.20-pa32/Makefile 2003-03-21 12:17:41.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/Makefile 2003-03-21 12:19:06.000000000 +0100
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 20
-EXTRAVERSION = -pa32
+EXTRAVERSION = -pa33
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
diff -Naur linux-2.4.20-pa32/arch/parisc/kernel/signal.c linux-2.4.20-pa32-gcc33/arch/parisc/kernel/signal.c
--- linux-2.4.20-pa32/arch/parisc/kernel/signal.c 2003-03-21 10:54:23.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/arch/parisc/kernel/signal.c 2003-03-21 12:39:20.000000000 +0100
@@ -489,7 +489,11 @@
ka = ¤t->sig->action[signr-1];
DBG(("sa_handler is %x\n",
(unsigned int) ka->sa.sa_handler));
+#if !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (ka->sa.sa_handler == (void *)SIG_IGN) {
+#else
if (ka->sa.sa_handler == SIG_IGN) {
+#endif
if (signr != SIGCHLD)
continue;
while (sys_wait4(-1, NULL, WNOHANG, NULL) > 0)
@@ -497,7 +501,11 @@
continue;
}
+#if !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (ka->sa.sa_handler == (void *)SIG_DFL) {
+#else
if (ka->sa.sa_handler == SIG_DFL) {
+#endif
int exit_code = signr;
/* Init gets no signals it doesn't want. */
diff -Naur linux-2.4.20-pa32/drivers/char/n_tty.c linux-2.4.20-pa32-gcc33/drivers/char/n_tty.c
--- linux-2.4.20-pa32/drivers/char/n_tty.c 2003-03-21 10:51:30.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/drivers/char/n_tty.c 2003-03-21 12:34:35.000000000 +0100
@@ -810,7 +810,11 @@
int is_ignored(int sig)
{
return (sigismember(¤t->blocked, sig) ||
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ current->sig->action[sig-1].sa.sa_handler == (void *)SIG_IGN);
+#else
current->sig->action[sig-1].sa.sa_handler == SIG_IGN);
+#endif
}
static void n_tty_set_termios(struct tty_struct *tty, struct termios * old)
diff -Naur linux-2.4.20-pa32/fs/ncpfs/sock.c linux-2.4.20-pa32-gcc33/fs/ncpfs/sock.c
--- linux-2.4.20-pa32/fs/ncpfs/sock.c 2003-03-21 10:36:05.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/fs/ncpfs/sock.c 2003-03-21 12:35:37.000000000 +0100
@@ -466,9 +466,17 @@
What if we've blocked it ourselves? What about
alarms? Why, in fact, are we mucking with the
sigmask at all? -- r~ */
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (current->sig->action[SIGINT - 1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (current->sig->action[SIGINT - 1].sa.sa_handler == SIG_DFL)
+#endif
mask |= sigmask(SIGINT);
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (current->sig->action[SIGQUIT - 1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (current->sig->action[SIGQUIT - 1].sa.sa_handler == SIG_DFL)
+#endif
mask |= sigmask(SIGQUIT);
}
siginitsetinv(¤t->blocked, mask);
diff -Naur linux-2.4.20-pa32/fs/proc/array.c linux-2.4.20-pa32-gcc33/fs/proc/array.c
--- linux-2.4.20-pa32/fs/proc/array.c 2003-03-21 10:01:18.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/fs/proc/array.c 2003-03-21 12:36:44.000000000 +0100
@@ -231,9 +231,17 @@
if (p->sig) {
k = p->sig->action;
for (i = 1; i <= _NSIG; ++i, ++k) {
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (k->sa.sa_handler == (void *)SIG_IGN)
+#else
if (k->sa.sa_handler == SIG_IGN)
+#endif
sigaddset(ign, i);
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ else if (k->sa.sa_handler != (void *)SIG_DFL)
+#else
else if (k->sa.sa_handler != SIG_DFL)
+#endif
sigaddset(catch, i);
}
}
diff -Naur linux-2.4.20-pa32/include/linux/compiler.h linux-2.4.20-pa32-gcc33/include/linux/compiler.h
--- linux-2.4.20-pa32/include/linux/compiler.h 2003-03-21 12:31:39.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/include/linux/compiler.h 2003-03-21 12:32:07.000000000 +0100
@@ -1,6 +1,12 @@
#ifndef __LINUX_COMPILER_H
#define __LINUX_COMPILER_H
+#if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
+#define inline __inline__ __attribute__((always_inline))
+#define __inline__ __inline__ __attribute__((always_inline))
+#define __inline __inline__ __attribute__((always_inline))
+#endif
+
/* Somewhere in the middle of the GCC 2.96 development cycle, we implemented
a mechanism by which the user can annotate likely branch directions and
expect the blocks to be reordered appropriately. Define __builtin_expect
diff -Naur linux-2.4.20-pa32/kernel/signal.c linux-2.4.20-pa32-gcc33/kernel/signal.c
--- linux-2.4.20-pa32/kernel/signal.c 2003-03-21 10:39:32.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/kernel/signal.c 2003-03-21 12:37:40.000000000 +0100
@@ -126,7 +126,11 @@
int i;
struct k_sigaction *ka = &t->sig->action[0];
for (i = _NSIG ; i != 0 ; i--) {
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (ka->sa.sa_handler != (void *)SIG_IGN)
+#else
if (ka->sa.sa_handler != SIG_IGN)
+#endif
ka->sa.sa_handler = SIG_DFL;
ka->sa.sa_flags = 0;
sigemptyset(&ka->sa.sa_mask);
@@ -572,7 +576,11 @@
return -ESRCH;
}
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (t->sig->action[sig-1].sa.sa_handler == (void *)SIG_IGN)
+#else
if (t->sig->action[sig-1].sa.sa_handler == SIG_IGN)
+#endif
t->sig->action[sig-1].sa.sa_handler = SIG_DFL;
sigdelset(&t->blocked, sig);
recalc_sigpending(t);
@@ -1094,8 +1102,13 @@
* the signal to be ignored.
*/
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (k->sa.sa_handler == (void *)SIG_IGN
+ || (k->sa.sa_handler == (void *)SIG_DFL
+#else
if (k->sa.sa_handler == SIG_IGN
|| (k->sa.sa_handler == SIG_DFL
+#endif
&& (sig == SIGCONT ||
sig == SIGCHLD ||
sig == SIGURG ||
diff -Naur linux-2.4.20-pa32/net/sunrpc/clnt.c linux-2.4.20-pa32-gcc33/net/sunrpc/clnt.c
--- linux-2.4.20-pa32/net/sunrpc/clnt.c 2003-03-21 10:46:28.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/net/sunrpc/clnt.c 2003-03-21 12:38:07.000000000 +0100
@@ -209,9 +209,17 @@
/* Turn off various signals */
if (clnt->cl_intr) {
struct k_sigaction *action = current->sig->action;
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (action[SIGINT-1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (action[SIGINT-1].sa.sa_handler == SIG_DFL)
+#endif
sigallow |= sigmask(SIGINT);
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (action[SIGQUIT-1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (action[SIGQUIT-1].sa.sa_handler == SIG_DFL)
+#endif
sigallow |= sigmask(SIGQUIT);
}
spin_lock_irqsave(¤t->sigmask_lock, irqflags);
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-20 18:23 ` John David Anglin
2003-03-21 12:44 ` Joel Soete
@ 2003-03-21 12:44 ` Joel Soete
1 sibling, 0 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-21 12:44 UTC (permalink / raw)
To: John David Anglin, dave
Cc: tausq, b.gunreben, willy, doko, debian-hppa, debian-gcc,
parisc-linux, kuznet, linux-net
[-- Attachment #1: Type: text/plain, Size: 8303 bytes --]
Hi Dave,
>
>Sorry, that part is wrong. Anyway, just leave the macro defines as
>is and cast them where used to void *. This causes the conversion
>of the other operand to void * and function pointer conicalization
>won't be done (6.5.9, paragraph 5).
>
you have definitely right.
I test following work-around against 2.4.20-pa32 with latest dpkg gcc-3.3
(3.3-0pre2) and it boot well know:
=====
diff -Naur linux-2.4.20-pa32/Makefile linux-2.4.20-pa32-gcc33/Makefile
--- linux-2.4.20-pa32/Makefile 2003-03-21 12:17:41.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/Makefile 2003-03-21 12:19:06.000000000 +0100
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 20
-EXTRAVERSION = -pa32
+EXTRAVERSION = -pa33
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
diff -Naur linux-2.4.20-pa32/arch/parisc/kernel/signal.c linux-2.4.20-pa32-gcc33/arch/parisc/kernel/signal.c
--- linux-2.4.20-pa32/arch/parisc/kernel/signal.c 2003-03-21 10:54:23.000000000
+0100
+++ linux-2.4.20-pa32-gcc33/arch/parisc/kernel/signal.c 2003-03-21 12:39:20.000000000
+0100
@@ -489,7 +489,11 @@
ka = ¤t->sig->action[signr-1];
DBG(("sa_handler is %x\n",
(unsigned int) ka->sa.sa_handler));
+#if !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__
>= 1))
+ if (ka->sa.sa_handler == (void *)SIG_IGN) {
+#else
if (ka->sa.sa_handler == SIG_IGN) {
+#endif
if (signr != SIGCHLD)
continue;
while (sys_wait4(-1, NULL, WNOHANG, NULL) > 0)
@@ -497,7 +501,11 @@
continue;
}
+#if !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__
>= 1))
+ if (ka->sa.sa_handler == (void *)SIG_DFL) {
+#else
if (ka->sa.sa_handler == SIG_DFL) {
+#endif
int exit_code = signr;
/* Init gets no signals it doesn't want. */
diff -Naur linux-2.4.20-pa32/drivers/char/n_tty.c linux-2.4.20-pa32-gcc33/drivers/char/n_tty.c
--- linux-2.4.20-pa32/drivers/char/n_tty.c 2003-03-21 10:51:30.000000000
+0100
+++ linux-2.4.20-pa32-gcc33/drivers/char/n_tty.c 2003-03-21 12:34:35.000000000
+0100
@@ -810,7 +810,11 @@
int is_ignored(int sig)
{
return (sigismember(¤t->blocked, sig) ||
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ current->sig->action[sig-1].sa.sa_handler == (void *)SIG_IGN);
+#else
current->sig->action[sig-1].sa.sa_handler == SIG_IGN);
+#endif
}
static void n_tty_set_termios(struct tty_struct *tty, struct termios * old)
diff -Naur linux-2.4.20-pa32/fs/ncpfs/sock.c linux-2.4.20-pa32-gcc33/fs/ncpfs/sock.c
--- linux-2.4.20-pa32/fs/ncpfs/sock.c 2003-03-21 10:36:05.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/fs/ncpfs/sock.c 2003-03-21 12:35:37.000000000
+0100
@@ -466,9 +466,17 @@
What if we've blocked it ourselves? What about
alarms? Why, in fact, are we mucking with the
sigmask at all? -- r~ */
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (current->sig->action[SIGINT - 1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (current->sig->action[SIGINT - 1].sa.sa_handler == SIG_DFL)
+#endif
mask |= sigmask(SIGINT);
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (current->sig->action[SIGQUIT - 1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (current->sig->action[SIGQUIT - 1].sa.sa_handler == SIG_DFL)
+#endif
mask |= sigmask(SIGQUIT);
}
siginitsetinv(¤t->blocked, mask);
diff -Naur linux-2.4.20-pa32/fs/proc/array.c linux-2.4.20-pa32-gcc33/fs/proc/array.c
--- linux-2.4.20-pa32/fs/proc/array.c 2003-03-21 10:01:18.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/fs/proc/array.c 2003-03-21 12:36:44.000000000
+0100
@@ -231,9 +231,17 @@
if (p->sig) {
k = p->sig->action;
for (i = 1; i <= _NSIG; ++i, ++k) {
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (k->sa.sa_handler == (void *)SIG_IGN)
+#else
if (k->sa.sa_handler == SIG_IGN)
+#endif
sigaddset(ign, i);
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ else if (k->sa.sa_handler != (void *)SIG_DFL)
+#else
else if (k->sa.sa_handler != SIG_DFL)
+#endif
sigaddset(catch, i);
}
}
diff -Naur linux-2.4.20-pa32/include/linux/compiler.h linux-2.4.20-pa32-gcc33/include/linux/compiler.h
--- linux-2.4.20-pa32/include/linux/compiler.h 2003-03-21 12:31:39.000000000
+0100
+++ linux-2.4.20-pa32-gcc33/include/linux/compiler.h 2003-03-21 12:32:07.000000000
+0100
@@ -1,6 +1,12 @@
#ifndef __LINUX_COMPILER_H
#define __LINUX_COMPILER_H
+#if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
+#define inline __inline__ __attribute__((always_inline))
+#define __inline__ __inline__ __attribute__((always_inline))
+#define __inline __inline__ __attribute__((always_inline))
+#endif
+
/* Somewhere in the middle of the GCC 2.96 development cycle, we implemented
a mechanism by which the user can annotate likely branch directions and
expect the blocks to be reordered appropriately. Define __builtin_expect
diff -Naur linux-2.4.20-pa32/kernel/signal.c linux-2.4.20-pa32-gcc33/kernel/signal.c
--- linux-2.4.20-pa32/kernel/signal.c 2003-03-21 10:39:32.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/kernel/signal.c 2003-03-21 12:37:40.000000000
+0100
@@ -126,7 +126,11 @@
int i;
struct k_sigaction *ka = &t->sig->action[0];
for (i = _NSIG ; i != 0 ; i--) {
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (ka->sa.sa_handler != (void *)SIG_IGN)
+#else
if (ka->sa.sa_handler != SIG_IGN)
+#endif
ka->sa.sa_handler = SIG_DFL;
ka->sa.sa_flags = 0;
sigemptyset(&ka->sa.sa_mask);
@@ -572,7 +576,11 @@
return -ESRCH;
}
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (t->sig->action[sig-1].sa.sa_handler == (void *)SIG_IGN)
+#else
if (t->sig->action[sig-1].sa.sa_handler == SIG_IGN)
+#endif
t->sig->action[sig-1].sa.sa_handler = SIG_DFL;
sigdelset(&t->blocked, sig);
recalc_sigpending(t);
@@ -1094,8 +1102,13 @@
* the signal to be ignored.
*/
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (k->sa.sa_handler == (void *)SIG_IGN
+ || (k->sa.sa_handler == (void *)SIG_DFL
+#else
if (k->sa.sa_handler == SIG_IGN
|| (k->sa.sa_handler == SIG_DFL
+#endif
&& (sig == SIGCONT ||
sig == SIGCHLD ||
sig == SIGURG ||
diff -Naur linux-2.4.20-pa32/net/sunrpc/clnt.c linux-2.4.20-pa32-gcc33/net/sunrpc/clnt.c
--- linux-2.4.20-pa32/net/sunrpc/clnt.c 2003-03-21 10:46:28.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/net/sunrpc/clnt.c 2003-03-21 12:38:07.000000000
+0100
@@ -209,9 +209,17 @@
/* Turn off various signals */
if (clnt->cl_intr) {
struct k_sigaction *action = current->sig->action;
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (action[SIGINT-1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (action[SIGINT-1].sa.sa_handler == SIG_DFL)
+#endif
sigallow |= sigmask(SIGINT);
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__
== 3 && __GNUC_MINOR__ >= 1))
+ if (action[SIGQUIT-1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (action[SIGQUIT-1].sa.sa_handler == SIG_DFL)
+#endif
sigallow |= sigmask(SIGQUIT);
}
spin_lock_irqsave(¤t->sigmask_lock, irqflags);
=====
I could not be sure about __LP64__ condition because gcc-hppa62_3.3 do not
yet exist :(
Can some body else could test it more?
Joel
PS1: I hoppe it will stay just a temporary work-around; that is typical what
I hate: code depending of platform and more over compiler release :(
PS2: If I well understand the pa32 patch include the Alan patch concerning
ptrace vulnerability. Is there some simple mean to stress the solution on
hppa platform?
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
[-- Attachment #2: linux-2.4.20-pa32_gcc33.patch --]
[-- Type: application/octet-stream, Size: 7228 bytes --]
diff -Naur linux-2.4.20-pa32/Makefile linux-2.4.20-pa32-gcc33/Makefile
--- linux-2.4.20-pa32/Makefile 2003-03-21 12:17:41.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/Makefile 2003-03-21 12:19:06.000000000 +0100
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 20
-EXTRAVERSION = -pa32
+EXTRAVERSION = -pa33
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
diff -Naur linux-2.4.20-pa32/arch/parisc/kernel/signal.c linux-2.4.20-pa32-gcc33/arch/parisc/kernel/signal.c
--- linux-2.4.20-pa32/arch/parisc/kernel/signal.c 2003-03-21 10:54:23.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/arch/parisc/kernel/signal.c 2003-03-21 12:39:20.000000000 +0100
@@ -489,7 +489,11 @@
ka = ¤t->sig->action[signr-1];
DBG(("sa_handler is %x\n",
(unsigned int) ka->sa.sa_handler));
+#if !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (ka->sa.sa_handler == (void *)SIG_IGN) {
+#else
if (ka->sa.sa_handler == SIG_IGN) {
+#endif
if (signr != SIGCHLD)
continue;
while (sys_wait4(-1, NULL, WNOHANG, NULL) > 0)
@@ -497,7 +501,11 @@
continue;
}
+#if !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (ka->sa.sa_handler == (void *)SIG_DFL) {
+#else
if (ka->sa.sa_handler == SIG_DFL) {
+#endif
int exit_code = signr;
/* Init gets no signals it doesn't want. */
diff -Naur linux-2.4.20-pa32/drivers/char/n_tty.c linux-2.4.20-pa32-gcc33/drivers/char/n_tty.c
--- linux-2.4.20-pa32/drivers/char/n_tty.c 2003-03-21 10:51:30.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/drivers/char/n_tty.c 2003-03-21 12:34:35.000000000 +0100
@@ -810,7 +810,11 @@
int is_ignored(int sig)
{
return (sigismember(¤t->blocked, sig) ||
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ current->sig->action[sig-1].sa.sa_handler == (void *)SIG_IGN);
+#else
current->sig->action[sig-1].sa.sa_handler == SIG_IGN);
+#endif
}
static void n_tty_set_termios(struct tty_struct *tty, struct termios * old)
diff -Naur linux-2.4.20-pa32/fs/ncpfs/sock.c linux-2.4.20-pa32-gcc33/fs/ncpfs/sock.c
--- linux-2.4.20-pa32/fs/ncpfs/sock.c 2003-03-21 10:36:05.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/fs/ncpfs/sock.c 2003-03-21 12:35:37.000000000 +0100
@@ -466,9 +466,17 @@
What if we've blocked it ourselves? What about
alarms? Why, in fact, are we mucking with the
sigmask at all? -- r~ */
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (current->sig->action[SIGINT - 1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (current->sig->action[SIGINT - 1].sa.sa_handler == SIG_DFL)
+#endif
mask |= sigmask(SIGINT);
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (current->sig->action[SIGQUIT - 1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (current->sig->action[SIGQUIT - 1].sa.sa_handler == SIG_DFL)
+#endif
mask |= sigmask(SIGQUIT);
}
siginitsetinv(¤t->blocked, mask);
diff -Naur linux-2.4.20-pa32/fs/proc/array.c linux-2.4.20-pa32-gcc33/fs/proc/array.c
--- linux-2.4.20-pa32/fs/proc/array.c 2003-03-21 10:01:18.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/fs/proc/array.c 2003-03-21 12:36:44.000000000 +0100
@@ -231,9 +231,17 @@
if (p->sig) {
k = p->sig->action;
for (i = 1; i <= _NSIG; ++i, ++k) {
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (k->sa.sa_handler == (void *)SIG_IGN)
+#else
if (k->sa.sa_handler == SIG_IGN)
+#endif
sigaddset(ign, i);
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ else if (k->sa.sa_handler != (void *)SIG_DFL)
+#else
else if (k->sa.sa_handler != SIG_DFL)
+#endif
sigaddset(catch, i);
}
}
diff -Naur linux-2.4.20-pa32/include/linux/compiler.h linux-2.4.20-pa32-gcc33/include/linux/compiler.h
--- linux-2.4.20-pa32/include/linux/compiler.h 2003-03-21 12:31:39.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/include/linux/compiler.h 2003-03-21 12:32:07.000000000 +0100
@@ -1,6 +1,12 @@
#ifndef __LINUX_COMPILER_H
#define __LINUX_COMPILER_H
+#if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
+#define inline __inline__ __attribute__((always_inline))
+#define __inline__ __inline__ __attribute__((always_inline))
+#define __inline __inline__ __attribute__((always_inline))
+#endif
+
/* Somewhere in the middle of the GCC 2.96 development cycle, we implemented
a mechanism by which the user can annotate likely branch directions and
expect the blocks to be reordered appropriately. Define __builtin_expect
diff -Naur linux-2.4.20-pa32/kernel/signal.c linux-2.4.20-pa32-gcc33/kernel/signal.c
--- linux-2.4.20-pa32/kernel/signal.c 2003-03-21 10:39:32.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/kernel/signal.c 2003-03-21 12:37:40.000000000 +0100
@@ -126,7 +126,11 @@
int i;
struct k_sigaction *ka = &t->sig->action[0];
for (i = _NSIG ; i != 0 ; i--) {
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (ka->sa.sa_handler != (void *)SIG_IGN)
+#else
if (ka->sa.sa_handler != SIG_IGN)
+#endif
ka->sa.sa_handler = SIG_DFL;
ka->sa.sa_flags = 0;
sigemptyset(&ka->sa.sa_mask);
@@ -572,7 +576,11 @@
return -ESRCH;
}
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (t->sig->action[sig-1].sa.sa_handler == (void *)SIG_IGN)
+#else
if (t->sig->action[sig-1].sa.sa_handler == SIG_IGN)
+#endif
t->sig->action[sig-1].sa.sa_handler = SIG_DFL;
sigdelset(&t->blocked, sig);
recalc_sigpending(t);
@@ -1094,8 +1102,13 @@
* the signal to be ignored.
*/
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (k->sa.sa_handler == (void *)SIG_IGN
+ || (k->sa.sa_handler == (void *)SIG_DFL
+#else
if (k->sa.sa_handler == SIG_IGN
|| (k->sa.sa_handler == SIG_DFL
+#endif
&& (sig == SIGCONT ||
sig == SIGCHLD ||
sig == SIGURG ||
diff -Naur linux-2.4.20-pa32/net/sunrpc/clnt.c linux-2.4.20-pa32-gcc33/net/sunrpc/clnt.c
--- linux-2.4.20-pa32/net/sunrpc/clnt.c 2003-03-21 10:46:28.000000000 +0100
+++ linux-2.4.20-pa32-gcc33/net/sunrpc/clnt.c 2003-03-21 12:38:07.000000000 +0100
@@ -209,9 +209,17 @@
/* Turn off various signals */
if (clnt->cl_intr) {
struct k_sigaction *action = current->sig->action;
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (action[SIGINT-1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (action[SIGINT-1].sa.sa_handler == SIG_DFL)
+#endif
sigallow |= sigmask(SIGINT);
+#if defined (__hppa__) && !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+ if (action[SIGQUIT-1].sa.sa_handler == (void *)SIG_DFL)
+#else
if (action[SIGQUIT-1].sa.sa_handler == SIG_DFL)
+#endif
sigallow |= sigmask(SIGQUIT);
}
spin_lock_irqsave(¤t->sigmask_lock, irqflags);
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-21 12:44 ` Joel Soete
@ 2003-03-21 13:36 ` Matthew Wilcox
2003-03-21 15:07 ` Joel Soete
0 siblings, 1 reply; 64+ messages in thread
From: Matthew Wilcox @ 2003-03-21 13:36 UTC (permalink / raw)
To: Joel Soete; +Cc: parisc-linux
On Fri, Mar 21, 2003 at 01:44:28PM +0100, Joel Soete wrote:
> I test following work-around against 2.4.20-pa32 with latest dpkg gcc-3.3
> (3.3-0pre2) and it boot well know:
> @@ -489,7 +489,11 @@
> +#if !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__
> >= 1))
> + if (ka->sa.sa_handler == (void *)SIG_IGN) {
> +#else
> if (ka->sa.sa_handler == SIG_IGN) {
> +#endif
ugh, this is foolish. You should be doing:
- if (ka->sa.sa_handler == SIG_IGN) {
+ if (ka->sa.sa_handler == (void *)SIG_IGN) {
no ifdefs!
--
"It's not Hollywood. War is real, war is primarily not about defeat or
victory, it is about death. I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
^ permalink raw reply [flat|nested] 64+ messages in thread
* Re: [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa
2003-03-21 13:36 ` Matthew Wilcox
@ 2003-03-21 15:07 ` Joel Soete
0 siblings, 0 replies; 64+ messages in thread
From: Joel Soete @ 2003-03-21 15:07 UTC (permalink / raw)
To: Matthew Wilcox; +Cc: parisc-linux
>> I test following work-around against 2.4.20-pa32 with latest dpkg gcc-3.3
>> (3.3-0pre2) and it boot well know:
>> @@ -489,7 +489,11 @@
>> +#if !defined (__LP64__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__
>> >= 1))
>> + if (ka->sa.sa_handler == (void *)SIG_IGN) {
>> +#else
>> if (ka->sa.sa_handler == SIG_IGN) {
>> +#endif
>
>ugh, this is foolish. You should be doing:
>
>- if (ka->sa.sa_handler == SIG_IGN) {
>+ if (ka->sa.sa_handler == (void *)SIG_IGN) {
>
>no ifdefs!
>
Willy, I trust you (not me because I not tested with gcc-3.2 neither LP64)
Thanks for your attention,
Joel
PS: Next time I will try to pay attention to cc list :)
---------------------------------
Vous surfez avec une ligne classique ?
Economisez jusqu'à 25% avec Tiscali Complete !
Offre spéciale : première année d'abonnement offerte.
... Plus d'info sur http://complete.tiscali.be
^ permalink raw reply [flat|nested] 64+ messages in thread
end of thread, other threads:[~2003-03-21 15:07 UTC | newest]
Thread overview: 64+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <15968.40812.741982.606734@gargle.gargle.HOWL>
[not found] ` <15969.1828.456001.122737@gargle.gargle.HOWL>
2003-03-02 4:59 ` [parisc-linux] Re: gcc-3.2 -> gcc-3.3 transition on hppa Randolph Chung
2003-03-02 5:40 ` John David Anglin
2003-03-02 9:24 ` M. Grabert
2003-03-02 9:24 ` M. Grabert
2003-03-02 17:01 ` Randolph Chung
2003-03-02 17:01 ` Randolph Chung
2003-03-02 18:50 ` John David Anglin
2003-03-02 18:50 ` John David Anglin
2003-03-02 5:40 ` John David Anglin
2003-03-03 14:27 ` Joel Soete
2003-03-03 14:27 ` Joel Soete
2003-03-03 16:17 ` John David Anglin
2003-03-03 16:17 ` John David Anglin
2003-03-03 16:24 ` Randolph Chung
2003-03-03 17:22 ` Joel Soete
2003-03-09 20:06 ` Matthias Klose
2003-03-09 20:06 ` Matthias Klose
2003-03-09 20:27 ` John David Anglin
2003-03-09 20:45 ` Randolph Chung
2003-03-09 20:45 ` Randolph Chung
2003-03-09 20:27 ` John David Anglin
2003-03-12 17:33 ` Joel Soete
2003-03-12 17:33 ` Joel Soete
2003-03-12 17:35 ` Randolph Chung
2003-03-12 17:35 ` Randolph Chung
2003-03-12 17:53 ` Joel Soete
2003-03-12 17:53 ` Joel Soete
2003-03-14 12:48 ` Joel Soete
2003-03-14 12:48 ` Joel Soete
2003-03-14 13:17 ` Matthew Wilcox
2003-03-14 16:31 ` Joel Soete
2003-03-14 16:31 ` Joel Soete
2003-03-18 18:14 ` b.gunreben
2003-03-18 18:53 ` John David Anglin
2003-03-18 18:53 ` John David Anglin
2003-03-18 19:02 ` Randolph Chung
2003-03-18 19:16 ` John David Anglin
2003-03-18 19:16 ` John David Anglin
2003-03-18 20:21 ` Randolph Chung
2003-03-18 20:21 ` Randolph Chung
2003-03-18 20:55 ` John David Anglin
2003-03-20 17:51 ` Joel Soete
2003-03-20 18:13 ` John David Anglin
2003-03-20 18:23 ` John David Anglin
2003-03-21 12:44 ` Joel Soete
2003-03-21 13:36 ` Matthew Wilcox
2003-03-21 15:07 ` Joel Soete
2003-03-21 12:44 ` Joel Soete
2003-03-20 18:23 ` John David Anglin
2003-03-20 18:13 ` John David Anglin
2003-03-20 17:51 ` Joel Soete
2003-03-18 20:55 ` John David Anglin
2003-03-18 19:02 ` Randolph Chung
2003-03-18 21:59 ` John David Anglin
2003-03-18 21:59 ` John David Anglin
2003-03-18 18:14 ` b.gunreben
2003-03-16 22:52 ` Michael S.Zick
2003-03-16 23:06 ` Matthew Wilcox
2003-03-16 23:17 ` Michael S.Zick
2003-03-20 18:20 ` Joel Soete
2003-03-14 13:17 ` Matthew Wilcox
2003-03-20 18:06 ` Joel Soete
2003-03-20 18:06 ` Joel Soete
2003-03-02 4:59 ` Randolph Chung
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.