header file inline causing problems
Steve Pribyl
steve@netfuel.com
Thu Apr 7 22:09:00 GMT 2005
I don't think I am going be able to duplicate this using the cross-compiler.
I have created a simple test case. Since the cross compiler does not have a
libgcj.a, I have hacked in the one created by the cross compilier. This libgcj.a
still has this problem but this test case does not bring out the problem.
Is there anything else I can do to figure/help figure this out. Is seems that
it might be specific to building the compiler.
class j
{
String _name;
j() {
_name="BOB";
}
String getName() {
return _name;
};
}
#include "j.h"
int main(int argc,char** argv)
{
j *bob=new j();
bob->getName();
return 0;
}
But it seems to work fine.
[steve@pascal steve]$ i386-mingw32msvc-nm j.o
00000000 b .bss
00000094 d __catch_classes_j
00000088 d __CD_j
00000090 d __CT_j
00000000 d .ctors
00000000 d .data
00000000 d __FL_j
00000044 t __GLOBAL__I_0__ZN1jC1Ev
U __Jv_RegisterClass
U __Jv_ThrowNullPointerException
00000020 d __MT_j
00000000 r .rdata
00000000 N .stab
00000000 N .stabstr
00000000 t .text
00000000 r __Utf1
0000000a r __Utf2
00000016 r __Utf3
0000001e r __Utf4
0000002a r __Utf5
00000044 r __Utf6
0000004c r __Utf7
000000c0 D __ZN1j6class$E
0000002c T __ZN1j7getNameEv
00000000 T __ZN1jC1Ev
U __ZN4java4lang6Object5cloneEv
U __ZN4java4lang6Object6class$E
U __ZN4java4lang6Object6equalsEPS1_
U __ZN4java4lang6Object8finalizeEv
U __ZN4java4lang6Object8hashCodeEv
U __ZN4java4lang6Object8toStringEv
U __ZN4java4lang6ObjectC1Ev
U __ZN4java4lang6String6class$E
00000060 D __ZTVN1jE
U __ZTVN4java4lang5ClassE
[steve@pascal steve]$ i386-mingw32msvc-nm natj.o
U __alloca
00000000 b .bss
00000000 d .data
U __Jv_AllocObject
00000000 T _main
U ___main
00000000 t .text
U __ZN1j6class$E
U __ZN1jC1Ev
Steve Pribyl wrote:
> As far as I can tell.
> This seems to only be a problem when building using a Linux cross-compiler.
> I have not been able to duplicate this on native mingw or Linux.
>
> I am in the process of trying to duplicate the problem using the Linux
> to Mingw cross compiler.
>
> Steve
>
> Tom Tromey wrote:
>
>>>>>>> "Ranjit" == Ranjit Mathew <rmathew@gmail.com> writes:
>>
>>
>>
>> Ranjit> Since natLogger.cc doesn't explicitly define getName(), I guess
>> Ranjit> this is the result of a funky interaction between using
>> Ranjit> #pragma interface/implementation and weak symbols support:
>> Ranjit> http://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Interface.html
>> Ranjit> But 4.0 should have weak symbols support for Cygwin/MinGW:
>> Ranjit> http://gcc.gnu.org/ml/gcc-cvs/2004-11/msg00265.html
>> Ranjit> So I am confused...
>>
>> We always have the option of not generating inline method bodies when
>> generating CNI headers. I believe what we do here isn't really valid,
>> it just always happened to work.
>>
>> Tom
>>
>
--
Steve Pribyl
Steve AT NetFuel dot com
Computer Infrastructure Practitioner
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 4706 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://gcc.gnu.org/pipermail/java/attachments/20050407/26ec4f7f/attachment.bin>
More information about the Java
mailing list