* crosstool-ng 1.19.0 fails to build i686-unknown-mingw32
@ 2014-01-20 23:50 Drew Bliss
2014-01-21 0:18 ` Ray Donnelly
0 siblings, 1 reply; 7+ messages in thread
From: Drew Bliss @ 2014-01-20 23:50 UTC (permalink / raw)
To: 'crossgcc@sourceware.org'
This is the same issue that Daniel Pauli mailed about in Mar 2013 but there didn't seem to be a reply. Does anybody know what the problem is here?
From: Daniel Pauli <dapaulid at gmail dot com>
To: crossgcc at sourceware dot org
Date: Wed, 6 Mar 2013 19:47:25 +0100
Subject: crosstool-ng 1.18.0 fails to build i686-unknown-mingw32 for gcc 4.7.2
Hey there
I'm trying to build the i686-unknown-mingw32 sample for gcc 4.7.2 but
it fails at the following step:
[ALL ] The directory that should contain system headers does not exist:
[ALL ] /home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/mingw/include
[ERROR] make[2]: *** [stmp-fixinc] Error 1
[ALL ] rm gcc.pod
[ALL ] make[2]: Leaving directory
`/home/user/crosstool-ng-1.18.0/test/.build/i686-unknown-mingw32/build/build-cc-core-pass-1/gcc'
[ERROR] make[1]: *** [all-gcc] Error 2
[ALL ] make[1]: Leaving directory
`/home/user/crosstool-ng-1.18.0/test/.build/i686-unknown-mingw32/build/build-cc-core-pass-1'
[ERROR]
[ERROR] >>
[ERROR] >> Build failed in step 'Installing pass-1 core C compiler'
[ERROR] >> called in step '(top-level)'
[ERROR] >>
[ERROR] >> Error happened in: CT_DoExecLog[scripts/functions@257]
[ERROR] >> called from: do_cc_core_backend[scripts/build/cc/gcc.sh@448]
[ERROR] >> called from: do_cc_core_pass_1[scripts/build/cc/gcc.sh@101]
[ERROR] >> called from: main[scripts/crosstool-NG.sh@632]
--
For unsubscribe information see http://sourceware.org/lists.html#faq
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: crosstool-ng 1.19.0 fails to build i686-unknown-mingw32
2014-01-21 0:18 ` Ray Donnelly
@ 2014-01-21 0:18 ` Ray Donnelly
2014-01-21 0:32 ` Drew Bliss
0 siblings, 1 reply; 7+ messages in thread
From: Ray Donnelly @ 2014-01-21 0:18 UTC (permalink / raw)
To: Drew Bliss; +Cc: crossgcc
mkdir -p .. of course!
On Tue, Jan 21, 2014 at 12:18 AM, Ray Donnelly <mingw.android@gmail.com> wrote:
> As a workaround you can make the parent directory before commencing the build:
>
> mkdir /home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/mingw
>
>
> On Mon, Jan 20, 2014 at 11:50 PM, Drew Bliss <drewb@valvesoftware.com> wrote:
>> This is the same issue that Daniel Pauli mailed about in Mar 2013 but there didn't seem to be a reply. Does anybody know what the problem is here?
>>
>> From: Daniel Pauli <dapaulid at gmail dot com>
>> To: crossgcc at sourceware dot org
>> Date: Wed, 6 Mar 2013 19:47:25 +0100
>> Subject: crosstool-ng 1.18.0 fails to build i686-unknown-mingw32 for gcc 4.7.2
>> Hey there
>>
>> I'm trying to build the i686-unknown-mingw32 sample for gcc 4.7.2 but
>> it fails at the following step:
>>
>> [ALL ] The directory that should contain system headers does not exist:
>> [ALL ] /home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/mingw/include
>> [ERROR] make[2]: *** [stmp-fixinc] Error 1
>> [ALL ] rm gcc.pod
>> [ALL ] make[2]: Leaving directory
>> `/home/user/crosstool-ng-1.18.0/test/.build/i686-unknown-mingw32/build/build-cc-core-pass-1/gcc'
>> [ERROR] make[1]: *** [all-gcc] Error 2
>> [ALL ] make[1]: Leaving directory
>> `/home/user/crosstool-ng-1.18.0/test/.build/i686-unknown-mingw32/build/build-cc-core-pass-1'
>> [ERROR]
>> [ERROR] >>
>> [ERROR] >> Build failed in step 'Installing pass-1 core C compiler'
>> [ERROR] >> called in step '(top-level)'
>> [ERROR] >>
>> [ERROR] >> Error happened in: CT_DoExecLog[scripts/functions@257]
>> [ERROR] >> called from: do_cc_core_backend[scripts/build/cc/gcc.sh@448]
>> [ERROR] >> called from: do_cc_core_pass_1[scripts/build/cc/gcc.sh@101]
>> [ERROR] >> called from: main[scripts/crosstool-NG.sh@632]
>>
>>
>> --
>> For unsubscribe information see http://sourceware.org/lists.html#faq
>>
--
For unsubscribe information see http://sourceware.org/lists.html#faq
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: crosstool-ng 1.19.0 fails to build i686-unknown-mingw32
2014-01-20 23:50 crosstool-ng 1.19.0 fails to build i686-unknown-mingw32 Drew Bliss
@ 2014-01-21 0:18 ` Ray Donnelly
2014-01-21 0:18 ` Ray Donnelly
0 siblings, 1 reply; 7+ messages in thread
From: Ray Donnelly @ 2014-01-21 0:18 UTC (permalink / raw)
To: Drew Bliss; +Cc: crossgcc
As a workaround you can make the parent directory before commencing the build:
mkdir /home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/mingw
On Mon, Jan 20, 2014 at 11:50 PM, Drew Bliss <drewb@valvesoftware.com> wrote:
> This is the same issue that Daniel Pauli mailed about in Mar 2013 but there didn't seem to be a reply. Does anybody know what the problem is here?
>
> From: Daniel Pauli <dapaulid at gmail dot com>
> To: crossgcc at sourceware dot org
> Date: Wed, 6 Mar 2013 19:47:25 +0100
> Subject: crosstool-ng 1.18.0 fails to build i686-unknown-mingw32 for gcc 4.7.2
> Hey there
>
> I'm trying to build the i686-unknown-mingw32 sample for gcc 4.7.2 but
> it fails at the following step:
>
> [ALL ] The directory that should contain system headers does not exist:
> [ALL ] /home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/mingw/include
> [ERROR] make[2]: *** [stmp-fixinc] Error 1
> [ALL ] rm gcc.pod
> [ALL ] make[2]: Leaving directory
> `/home/user/crosstool-ng-1.18.0/test/.build/i686-unknown-mingw32/build/build-cc-core-pass-1/gcc'
> [ERROR] make[1]: *** [all-gcc] Error 2
> [ALL ] make[1]: Leaving directory
> `/home/user/crosstool-ng-1.18.0/test/.build/i686-unknown-mingw32/build/build-cc-core-pass-1'
> [ERROR]
> [ERROR] >>
> [ERROR] >> Build failed in step 'Installing pass-1 core C compiler'
> [ERROR] >> called in step '(top-level)'
> [ERROR] >>
> [ERROR] >> Error happened in: CT_DoExecLog[scripts/functions@257]
> [ERROR] >> called from: do_cc_core_backend[scripts/build/cc/gcc.sh@448]
> [ERROR] >> called from: do_cc_core_pass_1[scripts/build/cc/gcc.sh@101]
> [ERROR] >> called from: main[scripts/crosstool-NG.sh@632]
>
>
> --
> For unsubscribe information see http://sourceware.org/lists.html#faq
>
--
For unsubscribe information see http://sourceware.org/lists.html#faq
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: crosstool-ng 1.19.0 fails to build i686-unknown-mingw32
2014-01-21 0:18 ` Ray Donnelly
@ 2014-01-21 0:32 ` Drew Bliss
2014-01-30 14:22 ` Soloff, Steven M Belcan Engineering Group, Cincinnati, Ohio
0 siblings, 1 reply; 7+ messages in thread
From: Drew Bliss @ 2014-01-21 0:32 UTC (permalink / raw)
To: 'crossgcc@sourceware.org'
The x-tools directory appears to be cleaned up and recreated when running ct-ng build, so any manually created directory is gone by the time it gets to the point of needing it.
Back in Aug 2012 the same issue was reported with 1.16 and a user said that this patch reordering steps fixed the problem. It doesn't appear to fix it with 1.19, plus the patch was considered undesirable since it breaks non-mingw builds.
--- a/lib/ct-ng.1.16.0/steps.mk 2012-08-06 14:55:00.848409671 +0200
+++ b/lib/ct-ng.1.16.0/steps.mk 2012-08-06 14:39:24.736900247 +0200
@@ -36,9 +36,9 @@
binutils_for_host \
elf2flt_for_host \
sstrip_for_host \
+ libc_start_files \
cc_core_pass_1 \
kernel_headers \
- libc_start_files \
cc_core_pass_2 \
libc \
cc_for_build \
-----Original Message-----
From: Ray Donnelly [mailto:mingw.android@gmail.com]
Sent: Monday, January 20, 2014 4:19 PM
To: Drew Bliss
Cc: crossgcc@sourceware.org
Subject: Re: crosstool-ng 1.19.0 fails to build i686-unknown-mingw32
mkdir -p .. of course!
On Tue, Jan 21, 2014 at 12:18 AM, Ray Donnelly <mingw.android@gmail.com> wrote:
> As a workaround you can make the parent directory before commencing the build:
>
> mkdir
> /home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/m
> ingw
>
>
> On Mon, Jan 20, 2014 at 11:50 PM, Drew Bliss <drewb@valvesoftware.com> wrote:
>> This is the same issue that Daniel Pauli mailed about in Mar 2013 but there didn't seem to be a reply. Does anybody know what the problem is here?
>>
>> From: Daniel Pauli <dapaulid at gmail dot com>
>> To: crossgcc at sourceware dot org
>> Date: Wed, 6 Mar 2013 19:47:25 +0100
>> Subject: crosstool-ng 1.18.0 fails to build i686-unknown-mingw32 for
>> gcc 4.7.2 Hey there
>>
>> I'm trying to build the i686-unknown-mingw32 sample for gcc 4.7.2 but
>> it fails at the following step:
>>
>> [ALL ] The directory that should contain system headers does not exist:
>> [ALL ] /home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/mingw/include
>> [ERROR] make[2]: *** [stmp-fixinc] Error 1
>> [ALL ] rm gcc.pod
>> [ALL ] make[2]: Leaving directory
>> `/home/user/crosstool-ng-1.18.0/test/.build/i686-unknown-mingw32/build/build-cc-core-pass-1/gcc'
>> [ERROR] make[1]: *** [all-gcc] Error 2
>> [ALL ] make[1]: Leaving directory
>> `/home/user/crosstool-ng-1.18.0/test/.build/i686-unknown-mingw32/build/build-cc-core-pass-1'
>> [ERROR]
>> [ERROR] >>
>> [ERROR] >> Build failed in step 'Installing pass-1 core C compiler'
>> [ERROR] >> called in step '(top-level)'
>> [ERROR] >>
>> [ERROR] >> Error happened in: CT_DoExecLog[scripts/functions@257]
>> [ERROR] >> called from: do_cc_core_backend[scripts/build/cc/gcc.sh@448]
>> [ERROR] >> called from: do_cc_core_pass_1[scripts/build/cc/gcc.sh@101]
>> [ERROR] >> called from: main[scripts/crosstool-NG.sh@632]
>>
>>
>> --
>> For unsubscribe information see http://sourceware.org/lists.html#faq
>>
--
For unsubscribe information see http://sourceware.org/lists.html#faq
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: crosstool-ng 1.19.0 fails to build i686-unknown-mingw32
2014-01-21 0:32 ` Drew Bliss
@ 2014-01-30 14:22 ` Soloff, Steven M Belcan Engineering Group, Cincinnati, Ohio
2014-01-30 14:43 ` Ray Donnelly
0 siblings, 1 reply; 7+ messages in thread
From: Soloff, Steven M Belcan Engineering Group, Cincinnati, Ohio @ 2014-01-30 14:22 UTC (permalink / raw)
To: crossgcc
This apparently broke beginning with GCC 4.6.0. I didn't track down the
root cause of the change in the GCC build process that required the
sysroot files to be accessible during the pass-1 compiler build.
However, the existence of the sysroot/mingw directory is not sufficient
-- the headers need to be there, as well.
Taking a cue from the patch referenced by Drew, I instead modified
scripts/build/libc/mingw.sh by moving the contents of
do_libc_start_files() to the end of do_libc_extract() [1], which should
only affect MinGW targets. I verified I could build a MinGW target
using GCC 4.5.3 (i686) and 4.8.1 (i686 and x86_64) using a patched
crosstool-ng 1.19.0.
However, I doubt this is the optimal solution. Seeing the "Installing C
library headers" step during the "Extracting and patching toolchain
components" step just smells bad. I'd appreciate any suggestions from
the devs for a better fix that I could submit.
Thanks,
Steve
[1]
--- a/scripts/build/libc/mingw.sh
+++ b/scripts/build/libc/mingw.sh
@@ -11,13 +11,7 @@ do_libc_extract() {
CT_Pushd "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/"
CT_Patch nochdir mingw-w64 "${CT_WINAPI_VERSION}"
CT_Popd
-}
-do_libc_check_config() {
- :
-}
-
-do_libc_start_files() {
local -a sdk_opts
CT_DoStep INFO "Installing C library headers"
@@ -56,6 +50,14 @@ do_libc_start_files() {
CT_EndStep
}
+do_libc_check_config() {
+ :
+}
+
+do_libc_start_files() {
+ :
+}
+
do_libc() {
CT_DoStep INFO "Building mingw-w64 files"
-----Original Message-----
From: Drew Bliss [mailto:drewb@valvesoftware.com]
Sent: Monday, January 20, 2014 7:32 PM
To: 'crossgcc@sourceware.org'
Subject: RE: crosstool-ng 1.19.0 fails to build i686-unknown-mingw32
The x-tools directory appears to be cleaned up and recreated when
running ct-ng build, so any manually created directory is gone by the
time it gets to the point of needing it.
Back in Aug 2012 the same issue was reported with 1.16 and a user said
that this patch reordering steps fixed the problem. It doesn't appear
to fix it with 1.19, plus the patch was considered undesirable since it
breaks non-mingw builds.
--- a/lib/ct-ng.1.16.0/steps.mk 2012-08-06 14:55:00.848409671 +0200
+++ b/lib/ct-ng.1.16.0/steps.mk 2012-08-06 14:39:24.736900247 +0200
@@ -36,9 +36,9 @@
binutils_for_host \
elf2flt_for_host \
sstrip_for_host \
+ libc_start_files \
cc_core_pass_1 \
kernel_headers \
- libc_start_files \
cc_core_pass_2 \
libc \
cc_for_build \
-----Original Message-----
From: Ray Donnelly [mailto:mingw.android@gmail.com]
Sent: Monday, January 20, 2014 4:19 PM
To: Drew Bliss
Cc: crossgcc@sourceware.org
Subject: Re: crosstool-ng 1.19.0 fails to build i686-unknown-mingw32
mkdir -p .. of course!
On Tue, Jan 21, 2014 at 12:18 AM, Ray Donnelly <mingw.android@gmail.com>
wrote:
> As a workaround you can make the parent directory before commencing
the build:
>
> mkdir
> /home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/m
> ingw
>
>
> On Mon, Jan 20, 2014 at 11:50 PM, Drew Bliss <drewb@valvesoftware.com>
wrote:
>> This is the same issue that Daniel Pauli mailed about in Mar 2013 but
there didn't seem to be a reply. Does anybody know what the problem is
here?
>>
>> From: Daniel Pauli <dapaulid at gmail dot com>
>> To: crossgcc at sourceware dot org
>> Date: Wed, 6 Mar 2013 19:47:25 +0100
>> Subject: crosstool-ng 1.18.0 fails to build i686-unknown-mingw32 for
>> gcc 4.7.2 Hey there
>>
>> I'm trying to build the i686-unknown-mingw32 sample for gcc 4.7.2 but
>> it fails at the following step:
>>
>> [ALL ] The directory that should contain system headers does not
exist:
>> [ALL ]
/home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/min
gw/include
>> [ERROR] make[2]: *** [stmp-fixinc] Error 1
>> [ALL ] rm gcc.pod
>> [ALL ] make[2]: Leaving directory
>>
`/home/user/crosstool-ng-1.18.0/test/.build/i686-unknown-mingw32/build/b
uild-cc-core-pass-1/gcc'
>> [ERROR] make[1]: *** [all-gcc] Error 2
>> [ALL ] make[1]: Leaving directory
>>
`/home/user/crosstool-ng-1.18.0/test/.build/i686-unknown-mingw32/build/b
uild-cc-core-pass-1'
>> [ERROR]
>> [ERROR] >>
>> [ERROR] >> Build failed in step 'Installing pass-1 core C compiler'
>> [ERROR] >> called in step '(top-level)'
>> [ERROR] >>
>> [ERROR] >> Error happened in: CT_DoExecLog[scripts/functions@257]
>> [ERROR] >> called from:
do_cc_core_backend[scripts/build/cc/gcc.sh@448]
>> [ERROR] >> called from:
do_cc_core_pass_1[scripts/build/cc/gcc.sh@101]
>> [ERROR] >> called from: main[scripts/crosstool-NG.sh@632]
>>
>>
>> --
>> For unsubscribe information see http://sourceware.org/lists.html#faq
>>
--
For unsubscribe information see http://sourceware.org/lists.html#faq
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: crosstool-ng 1.19.0 fails to build i686-unknown-mingw32
2014-01-30 14:22 ` Soloff, Steven M Belcan Engineering Group, Cincinnati, Ohio
@ 2014-01-30 14:43 ` Ray Donnelly
2014-01-30 18:15 ` [External] " Soloff, Steven M Belcan Engineering Group, Cincinnati, Ohio
0 siblings, 1 reply; 7+ messages in thread
From: Ray Donnelly @ 2014-01-30 14:43 UTC (permalink / raw)
To: Soloff, Steven M Belcan Engineering Group, Cincinnati, Ohio; +Cc: crossgcc
I've never needed the crt headers installed during pass-1 GCC, just
that the folder exists.
On Thu, Jan 30, 2014 at 2:07 PM, Soloff, Steven M Belcan
Engineering Group, Cincinnati, Ohio <Steven.Soloff@pw.utc.com> wrote:
> This apparently broke beginning with GCC 4.6.0. I didn't track down the
> root cause of the change in the GCC build process that required the
> sysroot files to be accessible during the pass-1 compiler build.
> However, the existence of the sysroot/mingw directory is not sufficient
> -- the headers need to be there, as well.
>
> Taking a cue from the patch referenced by Drew, I instead modified
> scripts/build/libc/mingw.sh by moving the contents of
> do_libc_start_files() to the end of do_libc_extract() [1], which should
> only affect MinGW targets. I verified I could build a MinGW target
> using GCC 4.5.3 (i686) and 4.8.1 (i686 and x86_64) using a patched
> crosstool-ng 1.19.0.
>
> However, I doubt this is the optimal solution. Seeing the "Installing C
> library headers" step during the "Extracting and patching toolchain
> components" step just smells bad. I'd appreciate any suggestions from
> the devs for a better fix that I could submit.
>
> Thanks,
> Steve
>
> [1]
> --- a/scripts/build/libc/mingw.sh
> +++ b/scripts/build/libc/mingw.sh
> @@ -11,13 +11,7 @@ do_libc_extract() {
> CT_Pushd "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/"
> CT_Patch nochdir mingw-w64 "${CT_WINAPI_VERSION}"
> CT_Popd
> -}
>
> -do_libc_check_config() {
> - :
> -}
> -
> -do_libc_start_files() {
> local -a sdk_opts
>
> CT_DoStep INFO "Installing C library headers"
> @@ -56,6 +50,14 @@ do_libc_start_files() {
> CT_EndStep
> }
>
> +do_libc_check_config() {
> + :
> +}
> +
> +do_libc_start_files() {
> + :
> +}
> +
> do_libc() {
> CT_DoStep INFO "Building mingw-w64 files"
>
>
> -----Original Message-----
> From: Drew Bliss [mailto:drewb@valvesoftware.com]
> Sent: Monday, January 20, 2014 7:32 PM
> To: 'crossgcc@sourceware.org'
> Subject: RE: crosstool-ng 1.19.0 fails to build i686-unknown-mingw32
>
> The x-tools directory appears to be cleaned up and recreated when
> running ct-ng build, so any manually created directory is gone by the
> time it gets to the point of needing it.
>
> Back in Aug 2012 the same issue was reported with 1.16 and a user said
> that this patch reordering steps fixed the problem. It doesn't appear
> to fix it with 1.19, plus the patch was considered undesirable since it
> breaks non-mingw builds.
>
> --- a/lib/ct-ng.1.16.0/steps.mk 2012-08-06 14:55:00.848409671 +0200
> +++ b/lib/ct-ng.1.16.0/steps.mk 2012-08-06 14:39:24.736900247 +0200
> @@ -36,9 +36,9 @@
> binutils_for_host \
> elf2flt_for_host \
> sstrip_for_host \
> + libc_start_files \
> cc_core_pass_1 \
> kernel_headers \
> - libc_start_files \
> cc_core_pass_2 \
> libc \
> cc_for_build \
>
> -----Original Message-----
> From: Ray Donnelly [mailto:mingw.android@gmail.com]
> Sent: Monday, January 20, 2014 4:19 PM
> To: Drew Bliss
> Cc: crossgcc@sourceware.org
> Subject: Re: crosstool-ng 1.19.0 fails to build i686-unknown-mingw32
>
> mkdir -p .. of course!
>
> On Tue, Jan 21, 2014 at 12:18 AM, Ray Donnelly <mingw.android@gmail.com>
> wrote:
>> As a workaround you can make the parent directory before commencing
> the build:
>>
>> mkdir
>> /home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/m
>> ingw
>>
>>
>> On Mon, Jan 20, 2014 at 11:50 PM, Drew Bliss <drewb@valvesoftware.com>
> wrote:
>>> This is the same issue that Daniel Pauli mailed about in Mar 2013 but
> there didn't seem to be a reply. Does anybody know what the problem is
> here?
>>>
>>> From: Daniel Pauli <dapaulid at gmail dot com>
>>> To: crossgcc at sourceware dot org
>>> Date: Wed, 6 Mar 2013 19:47:25 +0100
>>> Subject: crosstool-ng 1.18.0 fails to build i686-unknown-mingw32 for
>>> gcc 4.7.2 Hey there
>>>
>>> I'm trying to build the i686-unknown-mingw32 sample for gcc 4.7.2 but
>
>>> it fails at the following step:
>>>
>>> [ALL ] The directory that should contain system headers does not
> exist:
>>> [ALL ]
> /home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/min
> gw/include
>>> [ERROR] make[2]: *** [stmp-fixinc] Error 1
>>> [ALL ] rm gcc.pod
>>> [ALL ] make[2]: Leaving directory
>>>
> `/home/user/crosstool-ng-1.18.0/test/.build/i686-unknown-mingw32/build/b
> uild-cc-core-pass-1/gcc'
>>> [ERROR] make[1]: *** [all-gcc] Error 2
>>> [ALL ] make[1]: Leaving directory
>>>
> `/home/user/crosstool-ng-1.18.0/test/.build/i686-unknown-mingw32/build/b
> uild-cc-core-pass-1'
>>> [ERROR]
>>> [ERROR] >>
>>> [ERROR] >> Build failed in step 'Installing pass-1 core C compiler'
>>> [ERROR] >> called in step '(top-level)'
>>> [ERROR] >>
>>> [ERROR] >> Error happened in: CT_DoExecLog[scripts/functions@257]
>>> [ERROR] >> called from:
> do_cc_core_backend[scripts/build/cc/gcc.sh@448]
>>> [ERROR] >> called from:
> do_cc_core_pass_1[scripts/build/cc/gcc.sh@101]
>>> [ERROR] >> called from: main[scripts/crosstool-NG.sh@632]
>>>
>>>
>>> --
>>> For unsubscribe information see http://sourceware.org/lists.html#faq
>>>
>
> --
> For unsubscribe information see http://sourceware.org/lists.html#faq
>
--
For unsubscribe information see http://sourceware.org/lists.html#faq
^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [External] Re: crosstool-ng 1.19.0 fails to build i686-unknown-mingw32
2014-01-30 14:43 ` Ray Donnelly
@ 2014-01-30 18:15 ` Soloff, Steven M Belcan Engineering Group, Cincinnati, Ohio
0 siblings, 0 replies; 7+ messages in thread
From: Soloff, Steven M Belcan Engineering Group, Cincinnati, Ohio @ 2014-01-30 18:15 UTC (permalink / raw)
To: crossgcc
Hi Ray,
My mistake... You're correct, the pass-1 compiler is successfully built
if sysroot/mingw/include exists. I was just careless when examining the
log; the missing header error I was referring to occurs during the build
of the pass-2 compiler:
[ALL ] In file included from
/home/xbe1648/Documents/crosstool/i686-unknown-mingw32/.build/src/gcc-4.
8.1/libgcc/libgcc2.c:27:0:
[ERROR]
/home/xbe1648/Documents/crosstool/i686-unknown-mingw32/.build/src/gcc-4.
8.1/libgcc/../gcc/tsystem.h:87:19: fatal error: stdio.h: No such file or
directory
[ALL ] #include <stdio.h>
[ALL ] ^
[ALL ] compilation terminated.
However, that error's a red herring. My problem was that I didn't
correctly create sysroot/mingw/include. I didn't notice the comment in
scripts/build/libc/mingw.sh regarding the creation of the symbolic link
between sysroot/mingw and sysroot/usr/${CT_TARGET}.
So instead of simply executing the following command after the build
started (which lead to the compilation error above):
mkdir -p
/home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/min
gw/include
I used the following two commands:
mkdir -p
/home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/usr
/i686-unknown-mingw32/include
ln -sv usr/i686-unknown-mingw32
/home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/min
gw
That apparently worked such that the link was pointing to the correct
location when it came time to build the pass-2 compiler.
With that said, I reformulated the patch to only perform the above two
actions at the end of do_libc_extract() instead of installing the C
library:
--- a/scripts/build/libc/mingw.sh
+++ b/scripts/build/libc/mingw.sh
@@ -11,6 +11,16 @@ do_libc_extract() {
CT_Pushd "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/"
CT_Patch nochdir mingw-w64 "${CT_WINAPI_VERSION}"
CT_Popd
+
+ # Beginning with GCC 4.6.0, the "sysroot/mingw/include" directory
+ # must exist before the pass-1 compiler is built.
+ CT_mkdir_pushd "${CT_SYSROOT_DIR}/usr/${CT_TARGET}/include"
+ CT_Popd
+
+ # It seems mingw is strangely set up to look into /mingw instead of
+ # /usr (notably when looking for the headers). This symlink is
+ # here to workaround this, and seems to be here to last... :-/
+ CT_DoExecLog ALL ln -sv "usr/${CT_TARGET}"
"${CT_SYSROOT_DIR}/mingw"
}
do_libc_check_config() {
@@ -48,11 +58,6 @@ do_libc_start_files() {
CT_Popd
- # It seems mingw is strangely set up to look into /mingw instead of
- # /usr (notably when looking for the headers). This symlink is
- # here to workaround this, and seems to be here to last... :-/
- CT_DoExecLog ALL ln -sv "usr/${CT_TARGET}"
"${CT_SYSROOT_DIR}/mingw"
-
CT_EndStep
}
It still feels like I'm breaking cohesion by doing this in
do_libc_extract(). Any suggestions for improvement would be
appreciated.
Thanks,
Steve
-----Original Message-----
From: Ray Donnelly [mailto:mingw.android@gmail.com]
Sent: Thursday, January 30, 2014 9:44 AM
To: Soloff, Steven M Belcan Engineering Group, Cincinnati, Ohio
Cc: crossgcc@sourceware.org
Subject: [External] Re: crosstool-ng 1.19.0 fails to build
i686-unknown-mingw32
I've never needed the crt headers installed during pass-1 GCC, just that
the folder exists.
On Thu, Jan 30, 2014 at 2:07 PM, Soloff, Steven M Belcan
Engineering Group, Cincinnati, Ohio <Steven.Soloff@pw.utc.com> wrote:
> This apparently broke beginning with GCC 4.6.0. I didn't track down
> the root cause of the change in the GCC build process that required
> the sysroot files to be accessible during the pass-1 compiler build.
> However, the existence of the sysroot/mingw directory is not
> sufficient
> -- the headers need to be there, as well.
>
> Taking a cue from the patch referenced by Drew, I instead modified
> scripts/build/libc/mingw.sh by moving the contents of
> do_libc_start_files() to the end of do_libc_extract() [1], which
> should only affect MinGW targets. I verified I could build a MinGW
> target using GCC 4.5.3 (i686) and 4.8.1 (i686 and x86_64) using a
> patched crosstool-ng 1.19.0.
>
> However, I doubt this is the optimal solution. Seeing the "Installing
> C library headers" step during the "Extracting and patching toolchain
> components" step just smells bad. I'd appreciate any suggestions from
> the devs for a better fix that I could submit.
>
> Thanks,
> Steve
>
> [1]
> --- a/scripts/build/libc/mingw.sh
> +++ b/scripts/build/libc/mingw.sh
> @@ -11,13 +11,7 @@ do_libc_extract() {
> CT_Pushd "${CT_SRC_DIR}/mingw-w64-v${CT_WINAPI_VERSION}/"
> CT_Patch nochdir mingw-w64 "${CT_WINAPI_VERSION}"
> CT_Popd
> -}
>
> -do_libc_check_config() {
> - :
> -}
> -
> -do_libc_start_files() {
> local -a sdk_opts
>
> CT_DoStep INFO "Installing C library headers"
> @@ -56,6 +50,14 @@ do_libc_start_files() {
> CT_EndStep
> }
>
> +do_libc_check_config() {
> + :
> +}
> +
> +do_libc_start_files() {
> + :
> +}
> +
> do_libc() {
> CT_DoStep INFO "Building mingw-w64 files"
>
>
> -----Original Message-----
> From: Drew Bliss [mailto:drewb@valvesoftware.com]
> Sent: Monday, January 20, 2014 7:32 PM
> To: 'crossgcc@sourceware.org'
> Subject: RE: crosstool-ng 1.19.0 fails to build i686-unknown-mingw32
>
> The x-tools directory appears to be cleaned up and recreated when
> running ct-ng build, so any manually created directory is gone by the
> time it gets to the point of needing it.
>
> Back in Aug 2012 the same issue was reported with 1.16 and a user said
> that this patch reordering steps fixed the problem. It doesn't appear
> to fix it with 1.19, plus the patch was considered undesirable since
> it breaks non-mingw builds.
>
> --- a/lib/ct-ng.1.16.0/steps.mk 2012-08-06 14:55:00.848409671 +0200
> +++ b/lib/ct-ng.1.16.0/steps.mk 2012-08-06 14:39:24.736900247 +0200
> @@ -36,9 +36,9 @@
> binutils_for_host \
> elf2flt_for_host \
> sstrip_for_host \
> + libc_start_files \
> cc_core_pass_1 \
> kernel_headers \
> - libc_start_files \
> cc_core_pass_2 \
> libc \
> cc_for_build \
>
> -----Original Message-----
> From: Ray Donnelly [mailto:mingw.android@gmail.com]
> Sent: Monday, January 20, 2014 4:19 PM
> To: Drew Bliss
> Cc: crossgcc@sourceware.org
> Subject: Re: crosstool-ng 1.19.0 fails to build i686-unknown-mingw32
>
> mkdir -p .. of course!
>
> On Tue, Jan 21, 2014 at 12:18 AM, Ray Donnelly
> <mingw.android@gmail.com>
> wrote:
>> As a workaround you can make the parent directory before commencing
> the build:
>>
>> mkdir
>> /home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/
>> m
>> ingw
>>
>>
>> On Mon, Jan 20, 2014 at 11:50 PM, Drew Bliss
>> <drewb@valvesoftware.com>
> wrote:
>>> This is the same issue that Daniel Pauli mailed about in Mar 2013
>>> but
> there didn't seem to be a reply. Does anybody know what the problem
> is here?
>>>
>>> From: Daniel Pauli <dapaulid at gmail dot com>
>>> To: crossgcc at sourceware dot org
>>> Date: Wed, 6 Mar 2013 19:47:25 +0100
>>> Subject: crosstool-ng 1.18.0 fails to build i686-unknown-mingw32 for
>>> gcc 4.7.2 Hey there
>>>
>>> I'm trying to build the i686-unknown-mingw32 sample for gcc 4.7.2
>>> but
>
>>> it fails at the following step:
>>>
>>> [ALL ] The directory that should contain system headers does not
> exist:
>>> [ALL ]
> /home/user/x-tools/i686-unknown-mingw32/i686-unknown-mingw32/sysroot/m
> in
> gw/include
>>> [ERROR] make[2]: *** [stmp-fixinc] Error 1
>>> [ALL ] rm gcc.pod
>>> [ALL ] make[2]: Leaving directory
>>>
> `/home/user/crosstool-ng-1.18.0/test/.build/i686-unknown-mingw32/build
> /b
> uild-cc-core-pass-1/gcc'
>>> [ERROR] make[1]: *** [all-gcc] Error 2
>>> [ALL ] make[1]: Leaving directory
>>>
> `/home/user/crosstool-ng-1.18.0/test/.build/i686-unknown-mingw32/build
> /b
> uild-cc-core-pass-1'
>>> [ERROR]
>>> [ERROR] >>
>>> [ERROR] >> Build failed in step 'Installing pass-1 core C
compiler'
>>> [ERROR] >> called in step '(top-level)'
>>> [ERROR] >>
>>> [ERROR] >> Error happened in: CT_DoExecLog[scripts/functions@257]
>>> [ERROR] >> called from:
> do_cc_core_backend[scripts/build/cc/gcc.sh@448]
>>> [ERROR] >> called from:
> do_cc_core_pass_1[scripts/build/cc/gcc.sh@101]
>>> [ERROR] >> called from: main[scripts/crosstool-NG.sh@632]
>>>
>>>
>>> --
>>> For unsubscribe information see http://sourceware.org/lists.html#faq
>>>
>
> --
> For unsubscribe information see http://sourceware.org/lists.html#faq
>
--
For unsubscribe information see http://sourceware.org/lists.html#faq
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-01-30 18:15 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-20 23:50 crosstool-ng 1.19.0 fails to build i686-unknown-mingw32 Drew Bliss
2014-01-21 0:18 ` Ray Donnelly
2014-01-21 0:18 ` Ray Donnelly
2014-01-21 0:32 ` Drew Bliss
2014-01-30 14:22 ` Soloff, Steven M Belcan Engineering Group, Cincinnati, Ohio
2014-01-30 14:43 ` Ray Donnelly
2014-01-30 18:15 ` [External] " Soloff, Steven M Belcan Engineering Group, Cincinnati, Ohio
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).