* Re: gnu/gcj/io/shs.cc doesn't compile on Solaris 2.5.1 (bootstrap failure)
[not found] ` <86henk3xp5.fsf@megacz.com>
@ 2002-03-13 14:40 ` Rainer Orth
2002-03-13 15:18 ` Adam Megacz
0 siblings, 1 reply; 12+ messages in thread
From: Rainer Orth @ 2002-03-13 14:40 UTC (permalink / raw)
To: Adam Megacz; +Cc: gcc-gnats, java
Adam Megacz writes:
> Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> writes:
> > 2002-02-06 Adam Megacz <adam@xwt.org>
> >
> > * gnu/gcj/io/shs.h, gnu/gcj/io/shs.cc, gnu/gcj/io/natSimpleSHSStream.cc:
> > use uint<n>_t instead of LONG and BYTE
> >
> > which unconditionally uses uint<n>_t
>
> Nope, check shs.h (included from shs.cc):
>
> #include<config.h>
> #if HAVE_INTTYPES_H
> # include <inttypes.h>
> #else
> # if HAVE_STDINT_H
> # include <stdint.h>
> # endif
> #endif
>
> If your system does not have one of these headers, it is not C99
> compliant. GCJ does not build on non-C99-compliant systems.
but this is both unlike the way libstdc++ handles this and a (completely
unnecessary) regression from GCC 3.0.x.
Rainer
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: gnu/gcj/io/shs.cc doesn't compile on Solaris 2.5.1 (bootstrap failure)
2002-03-13 14:40 ` gnu/gcj/io/shs.cc doesn't compile on Solaris 2.5.1 (bootstrap failure) Rainer Orth
@ 2002-03-13 15:18 ` Adam Megacz
2002-03-13 15:40 ` Anthony Green
0 siblings, 1 reply; 12+ messages in thread
From: Adam Megacz @ 2002-03-13 15:18 UTC (permalink / raw)
To: Rainer Orth; +Cc: gcc-gnats, java
Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> writes:
> a (completely unnecessary) regression from GCC 3.0.x.
^^^^^^^^^^^^^^^^^^^^^^^^
The old shs.cc assumed that an unsigned int was 32 bits. This is
broken. To my knowledge, it can only be fixed robustly on platforms
with proper (C99-compliant) headers.
It seems that you know of another way to fix the problem which will
work on systems lacking proper headers. Could you please post a patch
containing your suggested fix?
Thanks!
- a
--
"If I put copyrighted material into the 'chewy nougat center', I can
claim the crunchy chocolate coating is an 'Access Control
Mechanism'." --lynx_user_abroad
Why Windows NT/2k/XP is unreliable: www.zappadoodle.com
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: gnu/gcj/io/shs.cc doesn't compile on Solaris 2.5.1 (bootstrap failure)
2002-03-13 15:18 ` Adam Megacz
@ 2002-03-13 15:40 ` Anthony Green
2002-03-14 2:56 ` Rainer Orth
0 siblings, 1 reply; 12+ messages in thread
From: Anthony Green @ 2002-03-13 15:40 UTC (permalink / raw)
To: Adam Megacz; +Cc: Rainer Orth, gcc-gnats, java
On Wed, 2002-03-13 at 15:12, Adam Megacz wrote:
> The old shs.cc assumed that an unsigned int was 32 bits. This is
> broken. To my knowledge, it can only be fixed robustly on platforms
> with proper (C99-compliant) headers.
>
> It seems that you know of another way to fix the problem which will
> work on systems lacking proper headers. Could you please post a patch
> containing your suggested fix?
I think we decided it would be OK to for the mode of the integer with a
type attribute. This is what I need for newlib targets as well (like
xscale-elf).
AG
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: gnu/gcj/io/shs.cc doesn't compile on Solaris 2.5.1 (bootstrap failure)
2002-03-13 15:40 ` Anthony Green
@ 2002-03-14 2:56 ` Rainer Orth
2002-03-15 13:07 ` Tom Tromey
0 siblings, 1 reply; 12+ messages in thread
From: Rainer Orth @ 2002-03-14 2:56 UTC (permalink / raw)
To: Anthony Green; +Cc: Adam Megacz, gcc-gnats, java
Anthony Green writes:
> I think we decided it would be OK to for the mode of the integer with a
> type attribute. This is what I need for newlib targets as well (like
> xscale-elf).
right, this is exactly what java/lang/mprec.h does (as already noted in
the PR libgcj/5944. I just don't have a good idea where to move this stuff
so it can be used both by java/lang and shs.h.
Rainer
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: gnu/gcj/io/shs.cc doesn't compile on Solaris 2.5.1 (bootstrap failure)
2002-03-14 2:56 ` Rainer Orth
@ 2002-03-15 13:07 ` Tom Tromey
2002-03-15 13:33 ` Rainer Orth
0 siblings, 1 reply; 12+ messages in thread
From: Tom Tromey @ 2002-03-15 13:07 UTC (permalink / raw)
To: Rainer Orth; +Cc: Anthony Green, Adam Megacz, java
>>>>> "Rainer" == Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> writes:
Rainer> right, this is exactly what java/lang/mprec.h does (as already
Rainer> noted in the PR libgcj/5944. I just don't have a good idea
Rainer> where to move this stuff so it can be used both by java/lang
Rainer> and shs.h.
I'm not too concerned about that right now. I don't know if I'll ever
be concerned with it :-).
Could you try this patch?
Tom
Index: ChangeLog
from Tom Tromey <tromey@redhat.com>
Fix for PR libgcj/5944.
* gnu/gcj/io/shs.h: Define uint8_t and uint32_t.
Index: gnu/gcj/io/shs.h
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/gcj/io/shs.h,v
retrieving revision 1.2
diff -u -r1.2 shs.h
--- gnu/gcj/io/shs.h 2002/02/07 05:01:29 1.2
+++ gnu/gcj/io/shs.h 2002/03/15 21:05:55
@@ -21,6 +21,9 @@
# if HAVE_STDINT_H
# include <stdint.h>
# endif
+#else
+typedef unsigned int uint32_t __attribute__((mode(SI)));
+typedef unsigned int uint8_t __attribute__((mode(QI)));
#endif
/* The SHS block size and message digest sizes, in bytes */
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: gnu/gcj/io/shs.cc doesn't compile on Solaris 2.5.1 (bootstrap failure)
2002-03-15 13:07 ` Tom Tromey
@ 2002-03-15 13:33 ` Rainer Orth
2002-03-15 13:41 ` Tom Tromey
2002-03-15 13:43 ` Tom Tromey
0 siblings, 2 replies; 12+ messages in thread
From: Rainer Orth @ 2002-03-15 13:33 UTC (permalink / raw)
To: tromey; +Cc: Anthony Green, Adam Megacz, java
Tom Tromey writes:
> Could you try this patch?
close :-) After fixing the #else/#endif nesting, the initial version
failed on Solaris 2.5.1:
/vol/gnu/src/gcc/gcc-3.1-branch-dist/libjava/gnu/gcj/io/shs.h:24: conflicting
types for `typedef unsigned int uint32_t'
/vol/gcc/obj/gcc-3.1-20020313/2.5.1-gcc/gcc/include/pthread.h:40: previous
declaration as `typedef long unsigned int uint32_t'
Taking the whole section from java/lang/mprec.h works on both
sparc-sun-solaris2.5.1 (where the bootstrap completes now; I'll run the
testsuite and post results soon) and alpha-dec-osf4.0f (where shs.c
compiles, but I get the same ICE compiling java/lang/Character.java,
details follow).
Rainer
Index: gnu/gcj/io/shs.h
===================================================================
RCS file: /cvs/gcc/gcc/libjava/gnu/gcj/io/shs.h,v
retrieving revision 1.2
diff -u -p -r1.2 shs.h
--- shs.h 2002/02/07 05:01:29 1.2
+++ shs.h 2002/03/15 21:28:02
@@ -20,6 +20,14 @@
#else
# if HAVE_STDINT_H
# include <stdint.h>
+# else
+typedef unsigned int uint8_t __attribute__((mode(QI)));
+/* This is a blatant hack: on Solaris 2.5, pthread.h defines uint32_t
+ in pthread.h, which we sometimes include. We protect our
+ definition the same way Solaris 2.5 does, to avoid redefining it. */
+# ifndef _UINT32_T
+typedef unsigned int uint32_t __attribute__((mode(SI)));
+# endif
# endif
#endif
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: gnu/gcj/io/shs.cc doesn't compile on Solaris 2.5.1 (bootstrap failure)
2002-03-15 13:33 ` Rainer Orth
@ 2002-03-15 13:41 ` Tom Tromey
2002-03-15 14:45 ` Rainer Orth
2002-03-15 13:43 ` Tom Tromey
1 sibling, 1 reply; 12+ messages in thread
From: Tom Tromey @ 2002-03-15 13:41 UTC (permalink / raw)
To: Rainer Orth; +Cc: Anthony Green, Adam Megacz, java
Rainer> close :-) After fixing the #else/#endif nesting, the initial
Rainer> version failed on Solaris 2.5.1:
Sorry, I didn't even do a cursory test.
Rainer> Taking the whole section from java/lang/mprec.h works on both
Rainer> sparc-sun-solaris2.5.1 (where the bootstrap completes now;
Rainer> I'll run the testsuite and post results soon) and
Rainer> alpha-dec-osf4.0f (where shs.c compiles, but I get the same
Rainer> ICE compiling java/lang/Character.java, details follow).
Thanks. I'll check this in soon.
Tom
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: gnu/gcj/io/shs.cc doesn't compile on Solaris 2.5.1 (bootstrap failure)
2002-03-15 13:33 ` Rainer Orth
2002-03-15 13:41 ` Tom Tromey
@ 2002-03-15 13:43 ` Tom Tromey
2002-03-15 13:49 ` Rainer Orth
1 sibling, 1 reply; 12+ messages in thread
From: Tom Tromey @ 2002-03-15 13:43 UTC (permalink / raw)
To: Rainer Orth; +Cc: Anthony Green, Adam Megacz, java
>>>>> "Rainer" == Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> writes:
Rainer> # if HAVE_STDINT_H
Rainer> # include <stdint.h>
Rainer> +# else
Does the else really belong here?
Solaris has <inttypes.h> but it doesn't define these types?
Tom
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: gnu/gcj/io/shs.cc doesn't compile on Solaris 2.5.1 (bootstrap failure)
2002-03-15 13:43 ` Tom Tromey
@ 2002-03-15 13:49 ` Rainer Orth
2002-03-15 14:01 ` Tom Tromey
0 siblings, 1 reply; 12+ messages in thread
From: Rainer Orth @ 2002-03-15 13:49 UTC (permalink / raw)
To: tromey; +Cc: Anthony Green, Adam Megacz, java
Tom Tromey writes:
> >>>>> "Rainer" == Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> writes:
>
> Rainer> # if HAVE_STDINT_H
> Rainer> # include <stdint.h>
> Rainer> +# else
>
> Does the else really belong here?
> Solaris has <inttypes.h> but it doesn't define these types?
no, Solaris 2.5.1 has neither inttypes.h nor stdint.h. inttypes.h first
appeared in 2.6. Only Solaris 2.5.1 pthread.h has {u,}int<n>_t
definitions.
Rainer
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: gnu/gcj/io/shs.cc doesn't compile on Solaris 2.5.1 (bootstrap failure)
2002-03-15 13:49 ` Rainer Orth
@ 2002-03-15 14:01 ` Tom Tromey
0 siblings, 0 replies; 12+ messages in thread
From: Tom Tromey @ 2002-03-15 14:01 UTC (permalink / raw)
To: Rainer Orth; +Cc: Anthony Green, Adam Megacz, java
>>>>> "Rainer" == Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> writes:
Rainer> no, Solaris 2.5.1 has neither inttypes.h nor stdint.h.
Rainer> inttypes.h first appeared in 2.6. Only Solaris 2.5.1
Rainer> pthread.h has {u,}int<n>_t definitions.
I was misreading the code. Sigh. I've checked in the patch and close
the PR. Thanks.
Tom
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: gnu/gcj/io/shs.cc doesn't compile on Solaris 2.5.1 (bootstrap failure)
2002-03-15 13:41 ` Tom Tromey
@ 2002-03-15 14:45 ` Rainer Orth
2002-04-02 18:49 ` Tom Tromey
0 siblings, 1 reply; 12+ messages in thread
From: Rainer Orth @ 2002-03-15 14:45 UTC (permalink / raw)
To: tromey; +Cc: Anthony Green, Adam Megacz, java
Tom Tromey writes:
> Rainer> Taking the whole section from java/lang/mprec.h works on both
> Rainer> sparc-sun-solaris2.5.1 (where the bootstrap completes now;
> Rainer> I'll run the testsuite and post results soon) and
> Rainer> alpha-dec-osf4.0f (where shs.c compiles, but I get the same
> Rainer> ICE compiling java/lang/Character.java, details follow).
>
> Thanks. I'll check this in soon.
fine, thanks. For the reference, here are the testsuite results for
libjava on sparc-sun-solaris2.5.1:
=== libjava tests ===
Running target unix
FAIL: PR5902 compilation from bytecode
FAIL: PR5902 -O compilation from bytecode
FAIL: linking cxxtest
FAIL: Invoke_1 execution from source compiled test
FAIL: Invoke_1 execution from bytecode->native test
FAIL: Invoke_1 -O execution from source compiled test
FAIL: Invoke_1 -O execution from bytecode->native test
FAIL: Primes output from source compiled test
FAIL: Primes output from bytecode->native test
FAIL: Primes -O output from source compiled test
FAIL: Primes -O output from bytecode->native test
FAIL: invokethrow execution from source compiled test
FAIL: invokethrow execution from bytecode->native test
FAIL: invokethrow -O execution from source compiled test
FAIL: invokethrow -O execution from bytecode->native test
FAIL: FileHandleGcTest execution from source compiled test
FAIL: FileHandleGcTest execution from bytecode->native test
FAIL: FileHandleGcTest -O execution from source compiled test
FAIL: FileHandleGcTest -O execution from bytecode->native test
=== libjava Summary ===
# of expected passes 2009
# of unexpected failures 19
# of expected failures 19
# of untested testcases 26
Compared to the previous 3.0.5 results
http://gcc.gnu.org/ml/gcc-testresults/2002-03/msg00293.html
they look excellent. One new failure is the Primes test: there's a gc
message interspersed with the (correct) output:
Needed to allocate blacklisted block at 0x1f9000
Maybe this can be disabled in boehm-gc or ignored somehow: unlike the test
output, it is written to stderr, not stdout.
Rainer
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: gnu/gcj/io/shs.cc doesn't compile on Solaris 2.5.1 (bootstrap failure)
2002-03-15 14:45 ` Rainer Orth
@ 2002-04-02 18:49 ` Tom Tromey
0 siblings, 0 replies; 12+ messages in thread
From: Tom Tromey @ 2002-04-02 18:49 UTC (permalink / raw)
To: Rainer Orth; +Cc: Anthony Green, Adam Megacz, java
>>>>> "Rainer" == Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> writes:
I didn't see a reply to this.
Rainer> One new failure is the Primes test: there's a gc message
Rainer> interspersed with the (correct) output:
Rainer> Needed to allocate blacklisted block at 0x1f9000
Rainer> Maybe this can be disabled in boehm-gc or ignored somehow:
Rainer> unlike the test output, it is written to stderr, not stdout.
This message is pretty much expected. There's some discussion of this
on the list a while back.
Adding code to the test suite to let us ignore this has been on my
to-do list forever.
Tom
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2002-04-03 2:47 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <200203132014.VAA27030@tamarinde.TechFak.Uni-Bielefeld.DE>
[not found] ` <86henk3xp5.fsf@megacz.com>
2002-03-13 14:40 ` gnu/gcj/io/shs.cc doesn't compile on Solaris 2.5.1 (bootstrap failure) Rainer Orth
2002-03-13 15:18 ` Adam Megacz
2002-03-13 15:40 ` Anthony Green
2002-03-14 2:56 ` Rainer Orth
2002-03-15 13:07 ` Tom Tromey
2002-03-15 13:33 ` Rainer Orth
2002-03-15 13:41 ` Tom Tromey
2002-03-15 14:45 ` Rainer Orth
2002-04-02 18:49 ` Tom Tromey
2002-03-15 13:43 ` Tom Tromey
2002-03-15 13:49 ` Rainer Orth
2002-03-15 14:01 ` Tom Tromey
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).