Mail Archives: cygwin-developers/1999/04/29/13:51:35
I've installed this patch. Thanks.
-chris
On Thu, Apr 29, 1999 at 12:14:20PM -0500, Mumit Khan wrote:
>Cygwin developers,
>
>I've re-posting this patch because it fixes some annoying problems when
>you try to build winsup snapshots with incompatible version of newlib
>installed. Please consider it for inclusion.
>
>It solves two problems when building the utils:
>
>- makes sure that the INCLUDES point to the current tree before looking
> at the installed copy which may be incompatible.
>
>- never use LDFLAGS in a sub-Makefile.
>
>Winsup checks for newlib in the build tree, and if it's there, it always
>adds the -B arg to EXE_LDFLAGS. My opinion however is unchanged from the
>last time we discussed this -- winsup should never be built without
>corresponding newlib in the same source tree and we should take measures
>to prevent it. That is, configure should balk if it can't find newlib in
>the build tree instead of just warning you.
>
>Patch against ss-1999-04-27. Patches to auto-generated configure not added.
>
>Thu Apr 29 11:06:37 1999 Mumit Khan <khan AT xraylith DOT wisc DOT edu>
>
> * configure.in (EXE_LDFLAGS): Always add newlib if part of the
> build tree.
>
> * utils/Makefile.in (INCLUDES): Add newlib include directories.
> (LDFLAGS): Replace this with
> (ALL_LDFLAGS): this to avoid being overridden from higher level
> Makefiles.
>
>
>--- configure.in.~1 Thu Apr 29 10:50:58 1999
>+++ configure.in Thu Apr 29 10:55:44 1999
>@@ -140,26 +140,36 @@ dnl program_transform_name="$program
> dnl fi
> dnl fi
>
>-dnl If CC can't create a .exe, which can happen when building from scratch
>-dnl because crt0.o hasn't been installed yet, set up EXE_LDFLAGS to find
>-dnl newlib. Newlib is ../newlib when configure runs, but is ../../newlib
>-dnl from the perspective of subdirectory makes.
>+dnl
>+dnl If newlib is part of build tree, always set EXE_LDFLAGS to point to
>+dnl it; this is important in cases where the installed newlib is perhaps
>+dnl not compatible. Check and warn for installed newlib only if it's not
>+dnl part of the build tree.
>+dnl
>+
>+AC_MSG_CHECKING([if newlib is part of the build tree])
>
>-AC_MSG_CHECKING([if newlib needed])
> EXE_LDFLAGS=
>-AC_TRY_LINK(,
>- [/* main already defined */]
>- ,
>- AC_MSG_RESULT(no)
>- ,
>- AC_MSG_RESULT(yes)
>- if test -d ../newlib
>- then
>- EXE_LDFLAGS="-B../../newlib/ -L.."
>- else
>- AC_MSG_WARN(newlib not found - utility .exe's may not link)
>- fi
>-)
>+if test -d ../newlib
>+then
>+ AC_MSG_RESULT(yes)
>+ EXE_LDFLAGS="-B../../newlib/ -B../"
>+else
>+ AC_MSG_RESULT(no)
>+fi
>+ AC_SUBST(EXE_LDFLAGS)
>+
>+if test x"$EXE_LDFLAGS" = x
>+then
>+ AC_MSG_CHECKING([if installed newlib needed])
>+ AC_TRY_LINK(,
>+ [/* main already defined */]
>+ ,
>+ AC_MSG_RESULT(no)
>+ ,
>+ AC_MSG_RESULT(yes)
>+ AC_MSG_WARN(newlib not found - utility .exe's may not link))
>+fi
> AC_SUBST(EXE_LDFLAGS)
>
> case "$target_cpu" in
>--- utils/Makefile.in.~1 Fri Jan 22 10:48:29 1999
>+++ utils/Makefile.in Thu Apr 29 10:57:27 1999
>@@ -30,13 +30,15 @@ CC = @CC@
> CFLAGS = @CFLAGS@
> CXXFLAGS = @CXXFLAGS@
>
>-INCLUDES = -I$(srcdir)/.. -I$(srcdir)/../include
>+INCLUDES = -I$(srcdir)/.. -I$(srcdir)/../include \
>+ -I$(srcdir)/../../newlib/libc/sys/cygwin \
>+ -I$(srcdir)/../../newlib/libc/include
>
> ALL_CFLAGS = $(CFLAGS) $(INCLUDES)
> ALL_CXXFLAGS = $(CXXFLAGS) $(INCLUDES)
>
> # Passed in from ../Makefile.
>-LDFLAGS:=$(EXE_LDFLAGS) ../libcygwin.a
>+ALL_LDFLAGS = $(EXE_LDFLAGS) $(LDFLAGS) ../libcygwin.a
>
> PROGS = mount$(EXEEXT) umount$(EXEEXT) ps$(EXEEXT) kill$(EXEEXT) \
> mkpasswd$(EXEEXT) mkgroup$(EXEEXT) cygpath$(EXEEXT) cygcheck$(EXEEXT) \
>@@ -48,34 +50,34 @@ WINSUP_DEPS = $(srcdir)/../winsup.h
> all: $(PROGS)
>
> mount$(EXEEXT): mount.cc $(WINSUP_DEPS)
>- $(CC) -o $@ $(srcdir)/mount.cc $(ALL_CXXFLAGS) $(LDFLAGS)
>+ $(CC) -o $@ $(srcdir)/mount.cc $(ALL_CXXFLAGS) $(ALL_LDFLAGS)
>
> umount$(EXEEXT): umount.cc $(WINSUP_DEPS)
>- $(CC) -o $@ $(srcdir)/umount.cc $(ALL_CXXFLAGS) $(LDFLAGS)
>+ $(CC) -o $@ $(srcdir)/umount.cc $(ALL_CXXFLAGS) $(ALL_LDFLAGS)
>
> ps$(EXEEXT): ps.cc $(WINSUP_DEPS)
>- $(CC) -o $@ $(srcdir)/ps.cc $(ALL_CXXFLAGS) $(LDFLAGS)
>+ $(CC) -o $@ $(srcdir)/ps.cc $(ALL_CXXFLAGS) $(ALL_LDFLAGS)
>
> kill$(EXEEXT): kill.cc $(WINSUP_DEPS)
>- $(CC) -o $@ $(srcdir)/kill.cc $(ALL_CXXFLAGS) $(LDFLAGS)
>+ $(CC) -o $@ $(srcdir)/kill.cc $(ALL_CXXFLAGS) $(ALL_LDFLAGS)
>
> cygwin$(EXEEXT): cygwin.cc $(WINSUP_DEPS)
>- $(CC) -o $@ $(srcdir)/cygwin.cc $(ALL_CXXFLAGS) $(LDFLAGS)
>+ $(CC) -o $@ $(srcdir)/cygwin.cc $(ALL_CXXFLAGS) $(ALL_LDFLAGS)
>
> mkpasswd$(EXEEXT): mkpasswd.c $(WINSUP_DEPS)
>- $(CC) -o $@ $(srcdir)/mkpasswd.c $(ALL_CXXFLAGS) $(LDFLAGS) -lnetapi32 -ladvapi32
>+ $(CC) -o $@ $(srcdir)/mkpasswd.c $(ALL_CXXFLAGS) $(ALL_LDFLAGS) -lnetapi32 -ladvapi32
>
> mkgroup$(EXEEXT): mkgroup.c $(WINSUP_DEPS)
>- $(CC) -o $@ $(srcdir)/mkgroup.c $(ALL_CXXFLAGS) $(LDFLAGS) -lnetapi32 -ladvapi32
>+ $(CC) -o $@ $(srcdir)/mkgroup.c $(ALL_CXXFLAGS) $(ALL_LDFLAGS) -lnetapi32 -ladvapi32
>
> cygpath$(EXEEXT): cygpath.cc $(WINSUP_DEFS)
>- $(CC) -o $@ $(srcdir)/cygpath.cc $(ALL_CXXFLAGS) $(LDFLAGS)
>+ $(CC) -o $@ $(srcdir)/cygpath.cc $(ALL_CXXFLAGS) $(ALL_LDFLAGS)
>
> cygcheck$(EXEEXT): cygcheck.cc $(WINSUP_DEPS)
>- $(CC) -o $@ $(srcdir)/cygcheck.cc $(ALL_CXXFLAGS) $(LDFLAGS)
>+ $(CC) -o $@ $(srcdir)/cygcheck.cc $(ALL_CXXFLAGS) $(ALL_LDFLAGS)
>
> passwd$(EXEEXT): passwd.c $(WINSUP_DEPS)
>- $(CC) -o $@ $(srcdir)/passwd.c $(ALL_CXXFLAGS) $(LDFLAGS) -lnetapi32
>+ $(CC) -o $@ $(srcdir)/passwd.c $(ALL_CXXFLAGS) $(ALL_LDFLAGS) -lnetapi32
>
> clean:
> rm -f *.o $(PROGS)
>
>Regards,
>Mumit
>
--
cgf AT cygnus DOT com
http://www.cygnus.com/
- Raw text -