jumphigh -> RE: gcc 4.0 (Nov. 14, '05, 3:59:29 PM) |
I MADE IT!
They used "-ffunction_section" for building the new libstdc++, so every function gets its own section. The result was more than 500 sections in the PE, and Windows say "ooops". I cleared these flags, now everything works fine. I also removed /opt/gcc.3.3/bin from the path, to be sure that only gcc4 is used.
After all, I must say it was quite simple to port GCC-4.0.2, although some problems remain: I got no shared libs (maybe they can be built with the MS tools), Java isn't complete because of the missing libjava (depends on libffi). The fact is, that libffi isn't ported to Interix, but I had no time to look what libffi is about. Also the Boehm garbace collector is missing, but who is using it?
Now I should lern how to build a package for your site, if you don't miss the shared libs (But linking without "-static" works, maybe the old ones from SfU are enough?). Or you build gcc-4.0.2 on your own, because unpacking the tarball and configure/gmake is nearly all to do.
My changes:
1. The original configure scripts don't run, because they crash when trying to test a old gcc as build host. Seems that the scripts don't like "-L/usr/local/ssl/lib" in LD_FLAGS, so I set a new LD_FLAGS without this path.
2. One generated script has a missing "#! /usr/bin/sh".
3. Clear all targets related to libffi, libjava and boehm-gc from the main Makefile.
4. Clear out SECTION_FLAGS from every Makefile in i586-pc-interix3/libstdc++-v3. This stops the generation of to much PE sections.
5. Use gmake instead of make!
6. After "gmake install" copy ld and as from the old gcc.3.3 directory to the new "/usr/local/libexec/gcc/i586-pc-interix3/4.0.2".
7. Clear gcc.3.3 out of the PATH inside /etc/csh.login and /etc/profile. But don't delete /opt/gcc.3.3, because after I made that (rename), nothing worked in Interix. Seems that some libs (ld.so) should be copied over to /usr/lib.
8. Run catman to build the new help files.
That'a all I remember at the moment.
Regards,
Andreas |
|
|
|