Mail Archives: djgpp-workers/2000/11/17/13:35:20
> Date: Fri, 17 Nov 2000 12:52:17 -0500
> From: "Peter J. Farley III" <pjfarley AT banet DOT net>
>
> >It would be nice if a way could be found to work with both old and
> new
> >GCC versions. Please see if you can make a change that works either
> >way. I think the library build procedure does something like that.
>
> I will try that later, if I can find the time. I haven't had 2.8.1
> installed for a long time now, so I'd have to re-install it to
> test.
No, I didn't mean for you to go to such great lengths. It suffices to
make a change that will work no matter where's libgcc.a located in the
DJGPP tree.
> -LINK = ld $(LDFLAGS) $^ -o $@ ${LIB}/libgcc.a -T ${TOP}/../../lib/djgpp.djl
> +LINK = ld $(LDFLAGS) $^ -o $@ ${LIB}/gcc-lib/djgpp/2.952/libgcc.a -T ${TOP}/../../lib/djgpp.djl
Hmmm... this is not a very good idea: it will break if you use any
other version of GCC but 2.95.2.
This tricky problem is solved in the library build procedure (see
src/makefile.inc) as follows:
ifeq ($(LIBGCCA),)
LIBGCCA := $(shell $(CROSS_GCC) -print-file-name=libgcc.a)
LIBGCCA := $(subst \,/,$(LIBGCCA))
export LIBGCCA
endif
The wonderful switch -print-file-name causes GCC to print the full
path to any of the files that are part of GCC installation and its
standard search paths.
The rest of the build then uses $(LIBGCCA) instead of the libgcc.a's
path. Note that the above works both on Unix and on DOS (assuming you
have GNU Make).
> gcc ... -c spawnvp.c
> Load error: no DOS memory
> make.exe[3]: *** [spawnvp.o] Error 1
> make.exe[2]: *** [all_subs] Error 2
> make.exe[1]: *** [all] Error 2
> make.exe: *** [subs] Error 2
>
> Just restarting "make" gets around this. Maybe this is a memory leak
> in makemake?
No, it's a resource leak in Windows (which is where I understand you
have run this). See section 3.3 of the FAQ.
- Raw text -