public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
@ 2022-12-06 23:25 mckelvey at maskull dot com
2022-12-06 23:33 ` [Bug c++/107998] " mckelvey at maskull dot com
` (24 more replies)
0 siblings, 25 replies; 26+ messages in thread
From: mckelvey at maskull dot com @ 2022-12-06 23:25 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
Bug ID: 107998
Summary: [13 Regression] gcc-13-20221204 failure to build on
Cygwin No dirname for option: m32
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: mckelvey at maskull dot com
Target Milestone: ---
Created attachment 54031
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54031&action=edit
Build log
This worked two snapshots ago.
make[3]: Entering directory
'/home/McKelvey/gcc-13-20221204/host-x86_64-pc-cygwin/gcc'
if test yes = yes \
|| test -n "../lib ../lib32"; then \
/bin/sh ../.././gcc/genmultilib \
"m64/m32" \
"64" \
"" \
"" \
"" \
"" \
"../lib ../lib32" \
"" \
"" \
"" \
"yes" \
> tmp-mlib.h; \
else \
/bin/sh ../.././gcc/genmultilib '' '' '' '' '' '' '' '' \
"" '' no \
> tmp-mlib.h; \
fi
Error calling ../.././gcc/genmultilib: No dirname for option: m32
make[3]: *** [Makefile:2241: s-mlib] Error 1
make[3]: Leaving directory
'/home/McKelvey/gcc-13-20221204/host-x86_64-pc-cygwin/gcc'
make[2]: *** [Makefile:4934: all-stage1-gcc] Error 2
make[2]: Leaving directory '/home/McKelvey/gcc-13-20221204'
make[1]: *** [Makefile:23894: stage1-bubble] Error 2
make[1]: Leaving directory '/home/McKelvey/gcc-13-20221204'
make: *** [Makefile:1063: all] Error 2
$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-cygwin/13.0.0/lto-wrapper.exe
Target: x86_64-pc-cygwin
Configured with: ./configure --enable-languages=c,c++ --enable-threads=posix
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 13.0.0 20221118 (experimental) (GCC)
$ uname
CYGWIN_NT-10.0-19044
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug c++/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
@ 2022-12-06 23:33 ` mckelvey at maskull dot com
2022-12-06 23:37 ` mckelvey at maskull dot com
` (23 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: mckelvey at maskull dot com @ 2022-12-06 23:33 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #1 from James McKelvey <mckelvey at maskull dot com> ---
Created attachment 54032
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54032&action=edit
Config log
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug c++/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
2022-12-06 23:33 ` [Bug c++/107998] " mckelvey at maskull dot com
@ 2022-12-06 23:37 ` mckelvey at maskull dot com
2022-12-07 0:07 ` [Bug target/107998] " pinskia at gcc dot gnu.org
` (22 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: mckelvey at maskull dot com @ 2022-12-06 23:37 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #2 from James McKelvey <mckelvey at maskull dot com> ---
Configured with:
./configure --enable-languages=c,c++ --enable-threads=posix
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
2022-12-06 23:33 ` [Bug c++/107998] " mckelvey at maskull dot com
2022-12-06 23:37 ` mckelvey at maskull dot com
@ 2022-12-07 0:07 ` pinskia at gcc dot gnu.org
2022-12-07 7:36 ` clyon at gcc dot gnu.org
` (21 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: pinskia at gcc dot gnu.org @ 2022-12-07 0:07 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |13.0
Component|bootstrap |target
CC| |clyon at gcc dot gnu.org
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
MULTILIB_OPTIONS = m64/m32
MULTILIB_DIRNAMES = 64
MULTILIB_OSDIRNAMES = ../lib ../lib32
Hmmm, the fix is obviously just add 32 to MULTILIB_DIRNAMES .
https://gcc.gnu.org/pipermail/gcc-patches/2022-November/606887.html
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (2 preceding siblings ...)
2022-12-07 0:07 ` [Bug target/107998] " pinskia at gcc dot gnu.org
@ 2022-12-07 7:36 ` clyon at gcc dot gnu.org
2022-12-07 16:19 ` mckelvey at maskull dot com
` (20 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: clyon at gcc dot gnu.org @ 2022-12-07 7:36 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #4 from Christophe Lyon <clyon at gcc dot gnu.org> ---
Indeed my patch aimed at catching such inconsistencies.
I guess before that the build had a 'strange' behavior? (with a missing
dirname, some parts of the shell genmultilib shell script would expand into
empty values, probably leading to unintended behaviour)
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (3 preceding siblings ...)
2022-12-07 7:36 ` clyon at gcc dot gnu.org
@ 2022-12-07 16:19 ` mckelvey at maskull dot com
2022-12-10 16:40 ` clyon at gcc dot gnu.org
` (19 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: mckelvey at maskull dot com @ 2022-12-07 16:19 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #5 from James McKelvey <mckelvey at maskull dot com> ---
This works:
$ diff gcc/config/i386/t-cygwin-w64~ gcc/config/i386/t-cygwin-w64
2c2
< MULTILIB_DIRNAMES = 64
---
> MULTILIB_DIRNAMES = 64 32
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (4 preceding siblings ...)
2022-12-07 16:19 ` mckelvey at maskull dot com
@ 2022-12-10 16:40 ` clyon at gcc dot gnu.org
2022-12-10 18:15 ` mckelvey at maskull dot com
` (18 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: clyon at gcc dot gnu.org @ 2022-12-10 16:40 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #6 from Christophe Lyon <clyon at gcc dot gnu.org> ---
(In reply to James McKelvey from comment #5)
> This works:
>
> $ diff gcc/config/i386/t-cygwin-w64~ gcc/config/i386/t-cygwin-w64
> 2c2
> < MULTILIB_DIRNAMES = 64
> ---
> > MULTILIB_DIRNAMES = 64 32
I guess this has an impact on the multilib layout (dirnames changes), is that
OK? Did you understand how the build succeeded previously?
Is there a risk to break other packages depending on this one?
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (5 preceding siblings ...)
2022-12-10 16:40 ` clyon at gcc dot gnu.org
@ 2022-12-10 18:15 ` mckelvey at maskull dot com
2022-12-10 21:09 ` mckelvey at maskull dot com
` (17 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: mckelvey at maskull dot com @ 2022-12-10 18:15 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #7 from James McKelvey <mckelvey at maskull dot com> ---
That fix let the build proceed until it hit a #error much later. See 108011.
Cygwin seems to be removing support for 32-bit, so although multilib has built
for years, it won't anymore. That's my take.
I'm not an expert on Cygwin or g++, I just build gcc-13 every snapshot and
report bugs.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (6 preceding siblings ...)
2022-12-10 18:15 ` mckelvey at maskull dot com
@ 2022-12-10 21:09 ` mckelvey at maskull dot com
2022-12-21 13:27 ` rguenth at gcc dot gnu.org
` (16 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: mckelvey at maskull dot com @ 2022-12-10 21:09 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #8 from James McKelvey <mckelvey at maskull dot com> ---
Okay I backed out the fix to t-cygwin-w64 and tried to build again with
--disable-multilib and stil got the "no dirname" error. So that fix is
definitely needed.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (7 preceding siblings ...)
2022-12-10 21:09 ` mckelvey at maskull dot com
@ 2022-12-21 13:27 ` rguenth at gcc dot gnu.org
2022-12-23 18:09 ` clyon at gcc dot gnu.org
` (15 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: rguenth at gcc dot gnu.org @ 2022-12-21 13:27 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
CC| |10walls at gmail dot com
Last reconfirmed| |2022-12-21
Priority|P3 |P1
Ever confirmed|0 |1
--- Comment #9 from Richard Biener <rguenth at gcc dot gnu.org> ---
Please try to work together to fix the build issue.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (8 preceding siblings ...)
2022-12-21 13:27 ` rguenth at gcc dot gnu.org
@ 2022-12-23 18:09 ` clyon at gcc dot gnu.org
2022-12-23 21:22 ` mckelvey at maskull dot com
` (14 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: clyon at gcc dot gnu.org @ 2022-12-23 18:09 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #10 from Christophe Lyon <clyon at gcc dot gnu.org> ---
Can you try to revert my patches:
f0d3b6e384a68f8b58bc750f240a15cad92600cd
ccb9c7b129206209cfc315ab1a0432b5f517bdd9
and remove your patch at comment #5 ?
You should still see the problem you reported in bug #108011
However, I don't understand why you had to do what you describe in comment #8.
When multilibs are disabled, the build shouldn't try to use MULTILIB_OPTIONS
etc...
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (9 preceding siblings ...)
2022-12-23 18:09 ` clyon at gcc dot gnu.org
@ 2022-12-23 21:22 ` mckelvey at maskull dot com
2023-02-01 17:27 ` jakub at gcc dot gnu.org
` (13 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: mckelvey at maskull dot com @ 2022-12-23 21:22 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #11 from James McKelvey <mckelvey at maskull dot com> ---
(In reply to Christophe Lyon from comment #10)
> Can you try to revert my patches:
> f0d3b6e384a68f8b58bc750f240a15cad92600cd
> ccb9c7b129206209cfc315ab1a0432b5f517bdd9
> and remove your patch at comment #5 ?
> You should still see the problem you reported in bug #108011
>
>
> However, I don't understand why you had to do what you describe in comment
> #8. When multilibs are disabled, the build shouldn't try to use
> MULTILIB_OPTIONS etc...
Sorry, I don't use git. I just build from the weekly snapshots.
I double-checked by removing the fix, make distclean, and
./configure --enable-languages=c,c++ --enable-threads=posix --disable-multilib
and got the same error.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (10 preceding siblings ...)
2022-12-23 21:22 ` mckelvey at maskull dot com
@ 2023-02-01 17:27 ` jakub at gcc dot gnu.org
2023-02-01 17:55 ` jakub at gcc dot gnu.org
` (12 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-01 17:27 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #12 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Any progress here?
It would be nice to know where did cygwin without --disable-multilib install
the 64-bit and 32-bit libraries, say in gcc 12 or before Christophe's changes
on the trunk see
what
gcc -print-multi-lib
and
gcc -print-multi-directory
and
gcc -print-multi-directory -m64
and
gcc -print-multi-directory -m32
and
gcc -print-multi-os-directory
and
gcc -print-multi-os-directory -m64
and
gcc -print-multi-os-directory -m32
printed, what does trunk with the
--- gcc/config/i386/t-cygwin-w64 2020-01-12 11:54:36.333414616 +0100
+++ gcc/config/i386/t-cygwin-w64 2023-02-01 18:24:34.771591906 +0100
@@ -1,3 +1,3 @@
MULTILIB_OPTIONS = m64/m32
-MULTILIB_DIRNAMES = 64
+MULTILIB_DIRNAMES = 64 32
MULTILIB_OSDIRNAMES = ../lib ../lib32
patch do.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (11 preceding siblings ...)
2023-02-01 17:27 ` jakub at gcc dot gnu.org
@ 2023-02-01 17:55 ` jakub at gcc dot gnu.org
2023-02-01 18:22 ` mckelvey at maskull dot com
` (11 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-01 17:55 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I have tried a cross with the genmultilib exit 1 commented out, and the
difference between the previous state of just MULTILIB_DIRNAMES = 64 and 64 32
is
--- multilib.h 2023-02-01 18:41:31.013661359 +0100
+++ multilib.h 2023-02-01 18:43:33.950857507 +0100
@@ -1,7 +1,7 @@
static const char *const multilib_raw[] = {
". !m64 !m32;",
"64:../lib m64 !m32;",
-":../lib32 !m64 m32;",
+"32:../lib32 !m64 m32;",
NULL
};
With the former, ./xgcc -B -print-multi-lib prints
.;
;@m32
and
-print-multi-directory
-print-multi-directory -m64
print
.
and
-print-multi-directory -m32
prints just an empty line.
I can't see how that could have every worked. So, I think the 64 32 patch is
right
and I assume everybody who was configuring for x86_64-w64-cygwin had to be
using --disable-multilib, otherwise I really wonder how it could actually work.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (12 preceding siblings ...)
2023-02-01 17:55 ` jakub at gcc dot gnu.org
@ 2023-02-01 18:22 ` mckelvey at maskull dot com
2023-02-01 18:28 ` jakub at gcc dot gnu.org
` (10 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: mckelvey at maskull dot com @ 2023-02-01 18:22 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #14 from James McKelvey <mckelvey at maskull dot com> ---
Okay I installed gcc-12, built about 10/29/2022:
$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-cygwin/12.2.1/lto-wrapper.exe
Target: x86_64-pc-cygwin
Configured with: ./configure --enable-languages=c,c++ --enable-threads=posix
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.1 20221029 (GCC)
$ cat gcc/config/i386/t-cygwin-w64
MULTILIB_OPTIONS = m64/m32
MULTILIB_DIRNAMES = 64
MULTILIB_OSDIRNAMES = ../lib ../lib32
$ gcc -print-multi-lib
.;
;@m32
$ gcc -print-multi-directory
.
$ gcc -print-multi-directory -m64
.
$ gcc -print-multi-directory -m32
$ gcc -print-multi-os-directory
../lib
$ gcc -print-multi-os-directory -m64
../lib
$ gcc -print-multi-os-directory -m32
../lib32
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (13 preceding siblings ...)
2023-02-01 18:22 ` mckelvey at maskull dot com
@ 2023-02-01 18:28 ` jakub at gcc dot gnu.org
2023-02-01 18:38 ` mckelvey at maskull dot com
` (9 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-01 18:28 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #15 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to James McKelvey from comment #14)
> Okay I installed gcc-12, built about 10/29/2022:
>
> $ g++ -v
> Using built-in specs.
> COLLECT_GCC=g++
> COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-cygwin/12.2.1/lto-
> wrapper.exe
> Target: x86_64-pc-cygwin
> Configured with: ./configure --enable-languages=c,c++ --enable-threads=posix
> Thread model: posix
> Supported LTO compression algorithms: zlib zstd
> gcc version 12.2.1 20221029 (GCC)
>
> $ cat gcc/config/i386/t-cygwin-w64
> MULTILIB_OPTIONS = m64/m32
> MULTILIB_DIRNAMES = 64
> MULTILIB_OSDIRNAMES = ../lib ../lib32
>
> $ gcc -print-multi-lib
> .;
> ;@m32
>
> $ gcc -print-multi-directory
> .
>
> $ gcc -print-multi-directory -m64
> .
>
> $ gcc -print-multi-directory -m32
>
>
> $ gcc -print-multi-os-directory
> ../lib
>
> $ gcc -print-multi-os-directory -m64
> ../lib
>
> $ gcc -print-multi-os-directory -m32
> ../lib32
That matches what I got from a cross-compiler.
I think what is more interesting is where e.g. the libraries in the build or
installed tree are.
Say on x86_64-linux in the build directory I have
find gcc -name libgcc_s.so.\* -o -name libgcc.a
gcc/libgcc.a
gcc/32/libgcc.a
gcc/32/libgcc_s.so.1
gcc/libgcc_s.so.1
What do you get with
find gcc -name libgcc_s\*.dll -o -name libgcc.a
?
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (14 preceding siblings ...)
2023-02-01 18:28 ` jakub at gcc dot gnu.org
@ 2023-02-01 18:38 ` mckelvey at maskull dot com
2023-02-01 18:59 ` jakub at gcc dot gnu.org
` (8 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: mckelvey at maskull dot com @ 2023-02-01 18:38 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #16 from James McKelvey <mckelvey at maskull dot com> ---
$ find /usr/local/lib/gcc -name libgcc_s\*.dll -o -name libgcc.a
/usr/local/lib/gcc/x86_64-pc-cygwin/11.3.1/libgcc.a
/usr/local/lib/gcc/x86_64-pc-cygwin/12.1.1/libgcc.a
/usr/local/lib/gcc/x86_64-pc-cygwin/12.2.0/libgcc.a
/usr/local/lib/gcc/x86_64-pc-cygwin/12.2.1/libgcc.a
/usr/local/lib/gcc/x86_64-pc-cygwin/13.0.0/libgcc.a
/usr/local/lib/gcc/x86_64-pc-cygwin/13.0.1/libgcc.a
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (15 preceding siblings ...)
2023-02-01 18:38 ` mckelvey at maskull dot com
@ 2023-02-01 18:59 ` jakub at gcc dot gnu.org
2023-02-01 19:12 ` mckelvey at maskull dot com
` (7 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-01 18:59 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #17 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
And those are libraries containing 64-bit objects, 32-bit objects, mixture of
that (FAT objects)?
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (16 preceding siblings ...)
2023-02-01 18:59 ` jakub at gcc dot gnu.org
@ 2023-02-01 19:12 ` mckelvey at maskull dot com
2023-02-01 19:34 ` jakub at gcc dot gnu.org
` (6 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: mckelvey at maskull dot com @ 2023-02-01 19:12 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #18 from James McKelvey <mckelvey at maskull dot com> ---
I don't know. How do I tell? I'm pretty sure they are just 64-bit.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (17 preceding siblings ...)
2023-02-01 19:12 ` mckelvey at maskull dot com
@ 2023-02-01 19:34 ` jakub at gcc dot gnu.org
2023-02-02 6:51 ` 10walls at gmail dot com
` (5 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-01 19:34 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #19 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I don't know either. Maybe objdump would print something.
Anyway, looking at config-ml.in, it seems like the empty directory name would
basically
disable that multilib:
multidirs=
for i in `${CC-gcc} --print-multi-lib 2>/dev/null`; do
dir=`echo $i | sed -e 's/;.*$//'`
if [ "${dir}" = "." ]; then
true
else
if [ -z "${multidirs}" ]; then
multidirs="${dir}"
else
multidirs="${multidirs} ${dir}"
fi
fi
done
I think for
.;
;@m32
the above first sets dir to "." and doesn't do anything, in the second
iteration
dir is empty string and as multidirs is empty as well, it is set to the same
empty
string.
So I think previously x86_64-pc-cygwin just didn't build multilibs at all, but
supported -m32 for compilation and would do weird things when trying to link
something.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (18 preceding siblings ...)
2023-02-01 19:34 ` jakub at gcc dot gnu.org
@ 2023-02-02 6:51 ` 10walls at gmail dot com
2023-02-02 7:05 ` jakub at gcc dot gnu.org
` (4 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: 10walls at gmail dot com @ 2023-02-02 6:51 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #20 from jon_y <10walls at gmail dot com> ---
No, Cygwin does not use fat objects/archives. As far as I know, Cygwin never
shipped multilib capable gcc.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (19 preceding siblings ...)
2023-02-02 6:51 ` 10walls at gmail dot com
@ 2023-02-02 7:05 ` jakub at gcc dot gnu.org
2023-02-21 16:12 ` jakub at gcc dot gnu.org
` (3 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-02 7:05 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #21 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
If so, then I don't understand why does t-cygwin-w64 exist.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (20 preceding siblings ...)
2023-02-02 7:05 ` jakub at gcc dot gnu.org
@ 2023-02-21 16:12 ` jakub at gcc dot gnu.org
2023-03-10 10:18 ` cvs-commit at gcc dot gnu.org
` (2 subsequent siblings)
24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-02-21 16:12 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #22 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 54502
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54502&action=edit
gcc13-pr107998.patch
Let's go with this patch then? Note, I can't really test it.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (21 preceding siblings ...)
2023-02-21 16:12 ` jakub at gcc dot gnu.org
@ 2023-03-10 10:18 ` cvs-commit at gcc dot gnu.org
2023-03-10 10:30 ` jakub at gcc dot gnu.org
2023-03-14 0:56 ` mckelvey at maskull dot com
24 siblings, 0 replies; 26+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-03-10 10:18 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #23 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Yong <jyong@gcc.gnu.org>:
https://gcc.gnu.org/g:e3f8dfcd885d19d322b10fb4e36d50b60da2576b
commit r13-6578-ge3f8dfcd885d19d322b10fb4e36d50b60da2576b
Author: Jakub Jelinek <jakub@redhat.com>
Date: Wed Feb 22 10:25:04 2023 +0100
cygwin: Don't try to support multilibs [PR107998]
As discussed in the PR, t-cygwin-w64 file has been introduced in 2013
and has one important problem, two different multilib options -m64 and
-m32,
but MULTILIB_DIRNAMES with just one word in it.
Before the genmultilib sanity checking was added, my understanding is that
this essentially resulted in effective --disable-multilib,
$ gcc -print-multi-lib
.;
;@m32
$ gcc -print-multi-directory
.
$ gcc -print-multi-directory -m64
.
$ gcc -print-multi-directory -m32
$ gcc -print-multi-os-directory
../lib
$ gcc -print-multi-os-directory -m64
../lib
$ gcc -print-multi-os-directory -m32
../lib32
and because of the way e.g. config-ml.in operates
multidirs=
for i in `${CC-gcc} --print-multi-lib 2>/dev/null`; do
dir=`echo $i | sed -e 's/;.*$//'`
if [ "${dir}" = "." ]; then
true
else
if [ -z "${multidirs}" ]; then
multidirs="${dir}"
else
multidirs="${multidirs} ${dir}"
fi
fi
done
dir was . first time (and so nothing was done) and empty
second time, multidirs empty too, so multidirs was set to empty
like it would be with --disable-multilib.
With the added sanity checking the build fails unless --disable-multilib
is used in configure (dunno whether people usually configure that way
on cygwin).
>From what has been said in the PR, multilibs were not meant to be
supported
and e.g. cygwin headers probably aren't ready for it.
So the following patch just removes the file with the (incorrect) multilib
stuff instead of fixing it (say by setting MULTILIB_DIRNAMES to 64 32).
I have no way to test this though, no Windows around, can anyone please
test this? I just would like to get some progress on the P1s we have...
2023-02-22 Jakub Jelinek <jakub@redhat.com>
gcc/ChangeLog:
PR target/107998
* config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into
$tmake_file.
* config/i386/t-cygwin-w64: Remove.
Signed-off-by: Jonathan Yong <10walls@gmail.com>
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (22 preceding siblings ...)
2023-03-10 10:18 ` cvs-commit at gcc dot gnu.org
@ 2023-03-10 10:30 ` jakub at gcc dot gnu.org
2023-03-14 0:56 ` mckelvey at maskull dot com
24 siblings, 0 replies; 26+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-03-10 10:30 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|NEW |RESOLVED
--- Comment #24 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed.
^ permalink raw reply [flat|nested] 26+ messages in thread
* [Bug target/107998] [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
` (23 preceding siblings ...)
2023-03-10 10:30 ` jakub at gcc dot gnu.org
@ 2023-03-14 0:56 ` mckelvey at maskull dot com
24 siblings, 0 replies; 26+ messages in thread
From: mckelvey at maskull dot com @ 2023-03-14 0:56 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107998
--- Comment #25 from James McKelvey <mckelvey at maskull dot com> ---
I just tried the latest snapshot and it works great, no need to specify
--disable-multilib.
^ permalink raw reply [flat|nested] 26+ messages in thread
end of thread, other threads:[~2023-03-14 0:56 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-12-06 23:25 [Bug c++/107998] New: [13 Regression] gcc-13-20221204 failure to build on Cygwin No dirname for option: m32 mckelvey at maskull dot com
2022-12-06 23:33 ` [Bug c++/107998] " mckelvey at maskull dot com
2022-12-06 23:37 ` mckelvey at maskull dot com
2022-12-07 0:07 ` [Bug target/107998] " pinskia at gcc dot gnu.org
2022-12-07 7:36 ` clyon at gcc dot gnu.org
2022-12-07 16:19 ` mckelvey at maskull dot com
2022-12-10 16:40 ` clyon at gcc dot gnu.org
2022-12-10 18:15 ` mckelvey at maskull dot com
2022-12-10 21:09 ` mckelvey at maskull dot com
2022-12-21 13:27 ` rguenth at gcc dot gnu.org
2022-12-23 18:09 ` clyon at gcc dot gnu.org
2022-12-23 21:22 ` mckelvey at maskull dot com
2023-02-01 17:27 ` jakub at gcc dot gnu.org
2023-02-01 17:55 ` jakub at gcc dot gnu.org
2023-02-01 18:22 ` mckelvey at maskull dot com
2023-02-01 18:28 ` jakub at gcc dot gnu.org
2023-02-01 18:38 ` mckelvey at maskull dot com
2023-02-01 18:59 ` jakub at gcc dot gnu.org
2023-02-01 19:12 ` mckelvey at maskull dot com
2023-02-01 19:34 ` jakub at gcc dot gnu.org
2023-02-02 6:51 ` 10walls at gmail dot com
2023-02-02 7:05 ` jakub at gcc dot gnu.org
2023-02-21 16:12 ` jakub at gcc dot gnu.org
2023-03-10 10:18 ` cvs-commit at gcc dot gnu.org
2023-03-10 10:30 ` jakub at gcc dot gnu.org
2023-03-14 0:56 ` mckelvey at maskull dot com
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).