Russ Whitaker wrote:
hard part: those pesky ".. linking not done" errors.
I thought they were because GPC called cpp instead of cpp0, and this should have been fixed now.
Oh yeah, you (and anyone else using gcc-2.95.3) will have to rerun the configure script. (This will detect gcc-2.95.3 and put a corresponsing define in gcc-version.h (in the build directory) which will tell gpc.c to call cpp0.)
It doesn't work, so went into gpc.c and changed ccp by hand. Didn't know if ECGS95 *or where* is defined so played it safe and changed the name to cpp0 in 12 places.
compiled, installed, and ran test suite:
# tests 1302 # passed 1301 # skipped 1 # fail 0
Hooray !
Am attaching diff file. Caution - it's only for the 20010409 release.
And by private mail (hope you don't mind me quoting it here, but it really seems to be of interest to others as well):
Since there is already a separate diff file for 2.95.3 and since there aren't that many changes to gpc.c and since the approach you took isn't working at this time, why not just add on a patch to the 2.95.3.diff file?
The gcc-*.diff's are for patching the GCC sources, not the GPC sources themselves (otherwise, e.g., one would get real problems when changing the GCC version). So, undoing my change and putting it in gcc-2.95.3.diff is not a good solution.
Rather than that, we've got to figure out why it doesn't work yet. In gpc.c I do an #ifdef GCC_2_95_3. As I said, it should be defined in gcc-version.h which is automatically created in the build directory during configuration. (That's also where ECGS95 will be defined for the respective GCC versions, but ECGS95 is not relevant to this discussion.)
So, the first step would be to check if GCC_2_95_3 is defined there. If so, then you may just need to rebuild gpc.o (remove the object file, do a make clean, or build from scratch ...).
Otherwise, try to find out what's going wrong in config-lang.in (which is called from configure). The code in lines 35-37 should set the define. You may want to add some debugging echo's to show the values of $version and $version_string when running configure. This might give you a hint why the check fails and how to correct it.
Frank