Error compiling for java
Andrew Haley
aph@redhat.com
Tue Jan 9 11:44:00 GMT 2007
oneforall writes:
> Andrew Haley <aph <at> redhat.com> writes:
>
> >
> > Goel, Mudit (Mudit) writes:
> > > All,
> > > I am trying to get a java cross compiler to be used with ppc750.
> > > I am using dem0-ppc750.sh .This is a partial build output that I got.
> > > Could someone help me fix this ?
> > > the syscall.h is pressent in ./usr/include/bits/syscall.h and not in this
> > > path. How can I go and change the path so that correct path is in place.
> > >
> > > In file included from ./include/java-signal.h:17,
> > > from
> > > /home/eplguser/Mudit/crosstool-0.42/build/powerpc-750-linux-gnu/gcc-4.1.0-gl
> > > ibc-2.3.5/gcc-4.1.0/libjava/prims.cc:26:
> > > /opt/crosstool/gcc-4.1.0-glibc-2.3.5/powerpc-750-linux-gnu/powerpc-750-linux
> > > -gnu/include/sys/syscall.h:32:27: error: bits/syscall.h: No such file or
> > > directory
> > > /home/eplguser/Mudit/crosstool-0.42/build/powerpc-750-linux-gnu/gcc-4.1.0-gl
> > > ibc-2.3.5/gcc-4.1.0/libjava/java/lang/Class.h: In member function
> > > 'java::lang::Class* java::lang::Class::getComponentType()':
> > > /home/eplguser/Mudit/crosstool-0.42/build/powerpc-750-linux-gnu/gcc-4.1.0-gl
> > > ibc-2.3.5/gcc-4.1.0/libjava/java/lang/Class.h:354: warning: dereferencing
> > > type-punned pointer will break strict-aliasing rules
> > > /home/eplguser/Mudit/crosstool-0.42/build/powerpc-750-linux-gnu/gcc-4.1.0-gl
> > > ibc-2.3.5/gcc-4.1.0/libjava/prims.cc: In function 'jint
> > > _Jv_CreateJavaVM(JvVMInitArgs*)':
> > > /home/eplguser/Mudit/crosstool-0.42/build/powerpc-750-linux-gnu/gcc-4.1.0-gl
> > > ibc-2.3.5/gcc-4.1.0/libjava/prims.cc:1274: error: 'SYS_sigaction' was not
> > > declared in this scope
> > > make[5]: *** [prims.lo] Error 1
> >
> > /usr/include/bits/syscall.h is part of the target's operating system.
> > On my system it's in the glibc-headers package. You need to take a
> > copy of the target's syscall.h and place it in the prefix along with
> > the other target headers.
>
> I''m having the same problem .cross compiling from slackware 32bit
> to 64. I used the clfs book but had to change for the extra
> languages. java compiles at iirc chapter 5 funal gcc(to
> cross-tools) then 6.4 iirc compiling to /tools. then I did what was
> needed for the reboot. compiled glibc with the --prefix=/usr 32bit
> build and then the 64bit build. It over writes the syscall.h of
> course. The 32bit one has both SYS_sigaction and SYS_rt_sigaction
> bit the 64bit only has the SYS_rt_sigaction line .
Right, it doesn't: SYS_sigaction is 32-bit only.
> I notice in glibcheaders for FC etc rpms it has the same syscall.h
> with no SYS_sigaction in it so how did FC over come this O.o thanks
> (slackware I did recompile to gcc 4.1.1 before I started the cross
> compile ,needed for ada as 3.4.6 was too old) gcc 4.1.1,glibc 2.4
64-bit PPC libjava doesn't use SYS_sigaction. It uses
SYS_rt_sigaction.
On my system, syscalls are defined in two places:
/usr/include/asm-x86_64/unistd.h and /usr/include/asm-i386/unistd.h.
It should be similar on your system.
Andrew.
More information about the Java
mailing list