On Wed, 2007-04-11 at 22:19 +0100, Pedro Alves wrote:
> I guess with cegcc would be easier to make it work, since you can take a
> look at what was done on the Voxware's toolchain.  Craig at the time had
> some problems with generating dlls, which are fixed now, so he sticked
> with a static libgcj.a (is that the lib's name?).  Best would be to have it
> working with mingw32ce.  gcj works with MinGW, so porting it to mingw32ce
> should be feasible.

The gcj sources aren't in our tree; I've added them locally and gave it
a try. Summary : it doesn't work out of the box, I'm not at the end of
it yet.

Building the compiler works, but then it fails to run :

dannypc: {50} arm-wince-cegcc-gcj
arm-wince-cegcc-gcj: libgcj.spec: No such file or directory

In the second build attempt, I added a flag to build libgcj. But that
fails on libffi which isn't ported to arm-wince-cegcc. Fixing the
configure.ac to get beyond this is easy, but then the build fails on
errors in some assembler file :

/home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/gcc/libffi/src/arm/sysv.S:
 Assembler messages:
/home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/gcc/libffi/src/arm/sysv.S:128:
 Warning: .type pseudo-op used outside of .def/.endef ignored.
/home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/gcc/libffi/src/arm/sysv.S:128:
 Error: junk at end of line, first unrecognized character is `f'
/home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/gcc/libffi/src/arm/sysv.S:208:
 Warning: .size pseudo-op used outside of .def/.endef ignored.
/home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/gcc/libffi/src/arm/sysv.S:208:
 Error: junk at end of line, first unrecognized character is `f'

I don't know how to handle this, but copying the sysv.S file from the
gcc-3.3 in the voxware files gets me further.

The next step is a test in src/gcc/boehm-gc/include/private/gcconfig.h :
# if defined(GC_WIN32_THREADS) && !defined(MSWIN32) && !
defined(CYGWIN32)
/*      --> inconsistent configuration  */
# endif

As you can see I've commented out the middle line, it was causing a
syntax error.

In the same file, NOSYS was being defined, causing a function to be
defined twice. Worked around this :
/* Determine the machine type: */
# if defined(__arm__) || defined(__thumb__)
#    define ARM32
#    if defined(__CEGCC__) || defined(__MINGW32__)
#      define mach_type_known
#    elif !defined(LINUX) && !defined(NETBSD)
#      define NOSYS
#      define mach_type_known
#    endif
# endif

Now the build fails so :
Making all in libltdl
/bin/sh: line 11: cd: libltdl: No such file or directory
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory
`/home/danny/src/cegcc/svn.sf.net/cegcc/trunk/cegcc/src/build-cegcc/gcj/arm-wince-cegcc/libjava'

Signing off for today.

        Danny
-- 
Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info

Attachment: signature.asc
Description: This is a digitally signed message part

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Cegcc-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/cegcc-devel

Reply via email to