Using the new cross compilation system - and a request for help
Alexander Gottwald
Alexander.Gottwald@informatik.tu-chemnitz.de
Thu Jul 11 09:36:00 GMT 2002
On Tue, 9 Jul 2002, Harold L Hunt wrote:
> A new cross compilation system was implemented for XFree86 in May of 2002.
> This new system is described here:
>
> http://www.xfree86.org/~keithp/xconf2001/cc-imake.pdf
According to that document, I modified the imakemdep.h file.
make World CROSSCOMPILEDIR="/usr/i686-pc-cygwin32/bin" compiled without
any errors (because of some Imakefile patches for rman).
The patch for imake is attached
Comments:
the CROSS_UTS_RELEASE is static because of I found no version string from
cygwin. Such a string might be added to the cygwin headers or might be
constructed from other version information in cygwin/version.h
glibc_major and glibc_minor was not set, but always referenced in imake.
But the imake code seems still to make some assumptions base on the host
operating system.
I did not include other patches to Imakefiles since they substitute
ProgramTarget(rman) by HostProgramTarget(rman). This is needed for
running full make World, but does not compile rman.exe for cygwin.
In host.def the macros CCmd, AsCmd are not preceeded by i686-pc-cygwin32-
anymore but only the sort names (gcc, as ...).
bye
ago
--
Alexander.Gottwald@informatik.tu-chemnitz.de
http://www.gotti.org ICQ: 126018723
-------------- next part --------------
Index: config/cf/cross.rules
===================================================================
RCS file: /cvs/xc/config/cf/cross.rules,v
retrieving revision 1.7
diff -U3 -r1.7 cross.rules
--- config/cf/cross.rules 2002/04/04 14:05:33 1.7
+++ config/cf/cross.rules 2002/07/11 15:23:46
@@ -4,7 +4,7 @@
#define HostCcCmd cc
#endif
-#define HostLinkRule(target, flags, src, libs) HostCcCmd -I$(BUILDINCDIR) -o target src libs
+#define HostLinkRule(target, flags, src, libs) HostCcCmd -I$(BUILDINCDIR) -o target src libs flags
/* ComplexHostProgramTarget - Compile a program such that we can run
* it on this host, i.e., don't use the default cross compiler.
Index: config/cf/cygwin.rules
===================================================================
RCS file: /cvs/xc/config/cf/cygwin.rules,v
retrieving revision 3.19
diff -U3 -r3.19 cygwin.rules
--- config/cf/cygwin.rules 2002/04/15 09:22:33 3.19
+++ config/cf/cygwin.rules 2002/07/11 15:23:46
@@ -315,9 +315,8 @@
$(OBJS6) $(OBJS7) $(OBJS8) $(OBJS9) $(OBJS10) @@\
SRCS = $(SRCS1) $(SRCS2) $(SRCS3) $(SRCS4) $(SRCS5) \ @@\
$(SRCS6) $(SRCS7) $(SRCS8) $(SRCS9) $(SRCS10) @@\
- PROGS_EXE = $(foreach prog,$(PROGRAMS),ProgramTargetName($(prog))) @@\
@@\
-AllTarget($(PROGS_EXE)) @@\
+AllTarget($(PROGRAMS)) @@\
@@\
ProgramTargetHelper(program,SRCS1,OBJS1,DEPLIBS1,locallib,syslib) @@\
@@\
@@ -325,7 +324,7 @@
LintTarget() @@\
@@\
clean:: @@\
- RemoveFiles($(PROGS_EXE))
+ RemoveFiles($(PROGRAMS))
/*
Index: config/imake/imakemdep.h
===================================================================
RCS file: /cvs/xc/config/imake/imakemdep.h,v
retrieving revision 3.59
diff -U3 -r3.59 imakemdep.h
--- config/imake/imakemdep.h 2002/05/31 16:31:20 3.59
+++ config/imake/imakemdep.h 2002/07/11 15:23:50
@@ -769,6 +769,16 @@
# include <linux/version.h>
# define CROSS_UTS_RELEASE UTS_RELEASE
# endif
+# elif defined(__CYGWIN__)
+# define DEFAULT_OS_MAJOR_REV "r %[0-9]"
+# define DEFAULT_OS_MINOR_REV "r %*d.%[0-9]"
+# define DEFAULT_OS_TEENY_REV "r %*d.%*d.%[0-9]"
+# define DEFAULT_OS_NAME "srm %[^\n]"
+# if defined(__CYGWIN__) && defined (CROSSCOMPILE_CPP)
+# define CROSS_UTS_SYSNAME "Cygwin"
+# include <cygwin/version.h>
+# define CROSS_UTS_RELEASE "1.3.9"
+# endif
# elif defined(__GNU__)
# define DEFAULT_OS_MAJOR_REV "r %[0-9]"
# define DEFAULT_OS_MINOR_REV "r %*d.%[0-9]"
@@ -1353,6 +1363,9 @@
# include <features.h>
int glibc_major = __GLIBC__ + 4;
int glibc_minor = __GLIBC_MINOR__;
+# else
+int glibc_major = 0;
+int glibc_minor = -1;
# endif
# endif /* !CROSSCOMPILE || CROSSCOMPILE_CPP */
Index: lib/GL/mesa/src/X86/Imakefile
===================================================================
RCS file: /cvs/xc/lib/GL/mesa/src/X86/Imakefile,v
retrieving revision 1.22
diff -U3 -r1.22 Imakefile
--- lib/GL/mesa/src/X86/Imakefile 2002/03/01 21:21:48 1.22
+++ lib/GL/mesa/src/X86/Imakefile 2002/07/11 15:24:06
@@ -85,11 +85,11 @@
MATYPES = ./gen_matypes
matypes.h: gen_matypes.c
- RemoveFiles($@ ProgramTargetName(gen_matypes))
- -HostLinkRule(ProgramTargetName(gen_matypes),$(CFLAGS) $(LOCAL_LDFLAGS),gen_matypes.c,$(LDLIBS))
+ RemoveFiles($@ HostProgramTargetName(gen_matypes))
+ -HostLinkRule(HostProgramTargetName(gen_matypes),$(CFLAGS) $(LOCAL_LDFLAGS),gen_matypes.c,$(LDLIBS))
RunProgram(MATYPES,> matypes_h)
$(MV) matypes_h $@
- RemoveFiles(ProgramTargetName(gen_matypes))
+ RemoveFiles(HostProgramTargetName(gen_matypes))
includes:: matypes.h
More information about the Cygwin-xfree
mailing list