Re: RFA: libjava seems to miss some files for win32

Kai Tietz <[email protected]>
Newsgroups gmane.comp.gcc.devel,gmane.comp.gcc.java.devel
Message-ID <[email protected]>
2009/7/19 Dave Korn <[email protected]>:
> Kai Tietz wrote:
>> 2009/7/19 Dave Korn <[email protected]>:
>>> Kai Tietz wrote:
>>>
>>>> There are a lot of issues about casting HANDLE values into jint types,
>>>> which is for x86 valid, but for x64 can lead potential to pointer
>>>> truncations. Those part need some review by libjava maintainers. My
>>>> patch simply casts those kind of pointers via __UINTPTR_TYPE__ into
>>>> integer scalar before casting it into jint. I put comments at those
>>>> places, where some rework is necessary.
>>>  Argh.  You're replacing a bunch of warnings that draw attention to a real
>>> problem by a bunch of silent fixmes in the code.  That's a bit scary to me.
>>
>> Right, therefore those comments are for. But otherwise I couldn't get
>> it build, as those kind of failures are treated as errors (what is in
>> fact a good thing).
>
>  Yes, so since they are a good thing, you should *not* get rid of them.  It
> is better for it not to build than for it to silently build bad code.  If you
> want it to work, you should make it *actually* work, otherwise just add it to
> noconfigdirs until such time as you can make it work.  There is not only no
> point successfully building a broken library, there is _less_ than no point.
>
>  Whenever adding fixmes, you must plan on there being a very great likelihood
> of them getting forgotten and never fixed.  Rule #1 of maintenance-friendly
> coding.
>
>>>  Question is, can we change the sizes of the members of class objects, such
>>> as gnu::java::net::PlainSocketImpl::native_fd, or do these objects and their
>>> layout form part of an ABI, and/or do they ever get serialised?  The Java guys
>>> will be able to tell us.
>
>> This was the reason, why I didn't changed api here. The final patch I
>> see here done by the java team, as I have no real idea, if those types
>> and members are part of abi, here. If it is there are ways to solve
>> this (e.g. making abstract handle values for OS handles as example).
>> So it is for sure necessary that a java maintainer takes action here.
>
>  I fail to see the value of building a broken libjava for w64.  It's not a
> step you need to get past on the roadmap to making a working java for w64.
> Just don't build it at all.  --disable-libjava or $noconfigdirs.
>
>  Alternatively, wait a few hours until the java guys have a chance to
> respond.  Maybe we can just change the datatypes, after all.  But I really
> can't see any use and only harm in adding a silently broken implementation.

Well, in standard I agree. But in this special case is the code just
broken for apps using more then 32-bit address range for heap (and
handles). Btw a run of testsuite works here in pretty much cases.
The patch I sent here is more a head-up (and it fixes build for 32-bit
windows builds, too). If I keep stuff in my back-chamber, things won't
improve and nobody knows that there is an issue present.

Cheers,
Kai

-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.