This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[ct-ng] mingw32 sysroot


Hi

I am using the attached patch to be able to use crosstool-ng 1.8.0 to
build mingw32 cross compiler (gcc 4.5.1) with sysroot enabled.

The change in gcc.sh is rather ugly, I must admit, but it was so much
simpler to fix it here than in gcc, and saves me the trouble of having
to fixup all gcc versions. I believe the mingw/include behavior is
pretty much stable across gcc versions.

The changes to use CT_HEADERS_DIR instead of CT_SYSROOT_DIR/include as
header destination seems pretty obvious and clean to me, so I suggest
that something like this is applied.

I have not tested if this breaks non-sysroot builds, so if someone
caring for mingw32 would do that it would be nice.

P.S. Building i586-mingw32 -> powerpc-linux-gnu canadian cross compiler
with 3 times ct-ng builds using gcc-4.5.1 is pretty neat :-)

/Esben
diff -urN crosstool-ng-1.8.0-orig/scripts/build/cc/gcc.sh crosstool-ng-1.8.0/scripts/build/cc/gcc.sh
--- crosstool-ng-1.8.0-orig/scripts/build/cc/gcc.sh	2010-08-10 23:29:14.000000000 +0200
+++ crosstool-ng-1.8.0/scripts/build/cc/gcc.sh	2010-08-10 23:32:19.000000000 +0200
@@ -429,7 +429,13 @@
     fi
 
     CT_DoLog EXTRA "Building final compiler"
+    if [ "${CT_MINGW32}" = "y" ]; then
+        CT_DoExecLog ALL ln -sv "usr" "${CT_SYSROOT_DIR}/mingw"
+    fi
     CT_DoExecLog ALL make ${PARALLELMFLAGS} all
+    if [ "${CT_MINGW32}" = "y" ]; then
+        CT_DoExecLog ALL rm "${CT_SYSROOT_DIR}/mingw"
+    fi
 
     CT_DoLog EXTRA "Installing final compiler"
     CT_DoExecLog ALL make install
diff -urN crosstool-ng-1.8.0-orig/scripts/build/kernel/mingw32.sh crosstool-ng-1.8.0/scripts/build/kernel/mingw32.sh
--- crosstool-ng-1.8.0-orig/scripts/build/kernel/mingw32.sh	2010-08-01 14:23:08.000000000 +0200
+++ crosstool-ng-1.8.0/scripts/build/kernel/mingw32.sh	2010-08-10 23:29:44.000000000 +0200
@@ -19,9 +19,9 @@
 do_kernel_headers() {
     CT_DoStep INFO "Installing kernel headers"
 
-    mkdir -p "${CT_SYSROOT_DIR}/include"
-    cp -r ${CT_SRC_DIR}/w32api-${CT_W32API_VERSION}-mingw32/include \
-          ${CT_SYSROOT_DIR}
+    mkdir -p "${CT_HEADERS_DIR}"
+    cp -r ${CT_SRC_DIR}/w32api-${CT_W32API_VERSION}-mingw32/include/* \
+          ${CT_HEADERS_DIR}
 
     CT_EndStep
 }
diff -urN crosstool-ng-1.8.0-orig/scripts/build/libc/mingw.sh crosstool-ng-1.8.0/scripts/build/libc/mingw.sh
--- crosstool-ng-1.8.0-orig/scripts/build/libc/mingw.sh	2010-08-01 14:23:08.000000000 +0200
+++ crosstool-ng-1.8.0/scripts/build/libc/mingw.sh	2010-08-10 23:34:31.000000000 +0200
@@ -41,9 +41,9 @@
     CT_DoStep INFO "Installing C library headers"
 
     CT_DoLog EXTRA "Installing MinGW Runtime headers"
-    mkdir -p "${CT_SYSROOT_DIR}/include"
-    cp -r ${CT_SRC_DIR}/mingwrt-${CT_MINGWRT_VERSION}-mingw32/include \
-          ${CT_SYSROOT_DIR}
+    mkdir -p "${CT_HEADERS_DIR}"
+    cp -r ${CT_SRC_DIR}/mingwrt-${CT_MINGWRT_VERSION}-mingw32/include/* \
+          ${CT_HEADERS_DIR}
 
     CT_EndStep
 }
@@ -60,11 +60,12 @@
     mkdir -p "${CT_BUILD_DIR}/build-w32api"
     cd "${CT_BUILD_DIR}/build-w32api"
 
-    CFLAGS="-I${CT_SYSROOT_DIR}/include"                          \
+    CFLAGS="-I${CT_HEADERS_DIR}"                                  \
     LDFLAGS="-L${CT_SYSROOT_DIR}/lib"                             \
     CT_DoExecLog ALL                                              \
     "${CT_SRC_DIR}/w32api-${CT_W32API_VERSION}-mingw32/configure" \
         --prefix=${CT_SYSROOT_DIR}                                \
+        --includedir=${CT_HEADERS_DIR}                            \
         --host=${CT_TARGET}
 
     CT_DoLog EXTRA "Building W32-API"
@@ -78,11 +79,12 @@
     mkdir -p "${CT_BUILD_DIR}/build-mingwrt"
     cd "${CT_BUILD_DIR}/build-mingwrt"
 
-    CFLAGS="-I${CT_SYSROOT_DIR}/include"                            \
+    CFLAGS="-I${CT_HEADERS_DIR}"                                    \
     LDFLAGS="-L${CT_SYSROOT_DIR}/lib"                               \
     CT_DoExecLog ALL                                                \
     "${CT_SRC_DIR}/mingwrt-${CT_MINGWRT_VERSION}-mingw32/configure" \
         --prefix=${CT_SYSROOT_DIR}/                                 \
+        --includedir=${CT_HEADERS_DIR}                              \
         --host=${CT_TARGET}
 
     CT_DoLog EXTRA "Building MinGW Runtime"
@@ -120,7 +122,7 @@
         CT_DoLog EXTRA "Installing PDCurses development files"
         chmod a+r ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/*.h
         cp ${CT_SRC_DIR}/PDCurses-${CT_MINGW_PDCURSES_VERSION}/*.h \
-           ${CT_SYSROOT_DIR}/include
+           ${CT_HEADERS_DIR}/
         cp pdcurses.a ${CT_SYSROOT_DIR}/lib/libpdcurses.a
         cp pdcurses.a ${CT_SYSROOT_DIR}/lib/libncurses.a
     fi
@@ -134,10 +136,11 @@
         CFLAGS="${CT_CFLAGS_FOR_TARGET}"                \
         CT_DoExecLog ALL                                \
         "${CT_SRC_DIR}/mingw-libgnurx-${CT_MINGW_GNURX_VERSION}/configure" \
-            --build=${CT_BUILD}           \
-            --host=${CT_TARGET}           \
-            --prefix=${CT_SYSROOT_DIR}    \
-            --enable-shared               \
+            --build=${CT_BUILD}                         \
+            --host=${CT_TARGET}                         \
+            --prefix=${CT_SYSROOT_DIR}                  \
+            --includedir=${CT_HEADERS_DIR}              \
+            --enable-shared                             \
             --enable-static
 
         CT_DoLog EXTRA "Building GnuRX development files"

--
For unsubscribe information see http://sourceware.org/lists.html#faq

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]