[Bug preprocessor/41943] include search path composition is bogus
--- Comment #9 from ktietz at gcc dot gnu dot org 2010-08-31 14:31 --- Fixed on trunk and won't be backported to 4.5.x, therefore I close this bug -- ktietz at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41943
[Bug preprocessor/41943] include search path composition is bogus
--- Comment #8 from ktietz at gcc dot gnu dot org 2010-07-23 18:32 --- Subject: Bug 41943 Author: ktietz Date: Fri Jul 23 18:32:25 2010 New Revision: 162479 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=162479 Log: 2010-07-23 Kai Tietz kai.ti...@onevision.com PR target/41943 * Makefile.in (USER_H_INC_NEXT_PRE, USER_H_INC_NEXT_POST): New. (stmp-int-hdrs): Prefix/postfix headers by include_next. * config.gcc (user_headers_inc_next_pre): New. (user_headers_inc_next_post): Likewise. (*-w64-mingw*): Use for float.h post-fixing, and for stddef.h/stdarg.h pre-fixing by include_next. * configure.ac (user_headers_inc_next_post): New. (user_headers_inc_next_pre): New. * configure: Regenerated. Modified: trunk/gcc/ChangeLog trunk/gcc/Makefile.in trunk/gcc/config.gcc trunk/gcc/configure trunk/gcc/configure.ac -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41943
[Bug preprocessor/41943] include search path composition is bogus
--- Comment #6 from ktietz at gcc dot gnu dot org 2009-12-06 11:47 --- By rethinking this issue I came to the point that this would lead to pretty havy incompatibilities between -pc-mingw32 and -w64-mingw32. Also it would disallow to use the default /usr/local prefix for installtion without setting up a sysroot. So I think to change gcc.c here is the better variant and fixes both venture targets here. As win32 paths are pretty unique for native windows targets, I think this patch here is minimal intrusive for *nix targets. Index: gcc/gcc/gcc.c === --- gcc.orig/gcc/gcc.c 2009-11-26 17:37:26.0 +0100 +++ gcc/gcc/gcc.c 2009-12-06 12:37:38.21319 +0100 @@ -2900,8 +2900,11 @@ { if (!IS_ABSOLUTE_PATH (prefix)) fatal (system path '%s' is not absolute, prefix); - - if (target_system_root) + if (target_system_root +#if HAVE_DOS_BASED_FILE_SYSTEM == 1 + (!prefix[0] || prefix[1] != ':') +#endif + ) { if (target_sysroot_suffix) prefix = concat (target_sysroot_suffix, prefix, NULL); I tested this patch and it seems to do what you expects it should do. Cheers, Kai -- ktietz at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |ktietz at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2009-11-29 20:47:06 |2009-12-06 11:47:02 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41943
[Bug preprocessor/41943] include search path composition is bogus
--- Comment #7 from ktietz at gcc dot gnu dot org 2009-12-06 20:01 --- Well, this patch doesn't hurt in gcc.c, but doesn't solve the issue. Sorry for posting this. incpath.c is the location to investigate in. Kai -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41943
[Bug preprocessor/41943] include search path composition is bogus
--- Comment #5 from rainer at emrich-ebersheim dot de 2009-12-04 08:24 --- Subject: Re: include search path composition is bogus -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 ktietz at gcc dot gnu dot org schrieb: --- Comment #4 from ktietz at gcc dot gnu dot org 2009-12-03 21:56 --- Would it be a solution (at least for -w64- targets) to remove the sys-root/mingw part and default to sysroot/include sysroot/lib instead. At least for the -w64- targets there is no real need of this /mingw subfolder. Kai I'm fine with such a solution! Rainer -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAksYxxMACgkQoUhjsh59BL4zKQCfYIyhzc8De0cE7D5xjG9QCYg1 z6MAnjvLRVeV/a0bSks4jFHf0cwt27VY =bekw -END PGP SIGNATURE- -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41943
[Bug preprocessor/41943] include search path composition is bogus
--- Comment #4 from ktietz at gcc dot gnu dot org 2009-12-03 21:56 --- Would it be a solution (at least for -w64- targets) to remove the sys-root/mingw part and default to sysroot/include sysroot/lib instead. At least for the -w64- targets there is no real need of this /mingw subfolder. Kai -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41943
[Bug preprocessor/41943] include search path composition is bogus
-- ktietz at gcc dot gnu dot org changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-11-29 20:47:06 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41943
[Bug preprocessor/41943] include search path composition is bogus
--- Comment #3 from rainer at emrich-ebersheim dot de 2009-11-07 11:04 --- (In reply to comment #2) (In reply to comment #1) That is because the way you configured GCC with --with-sysroot=/mingw/test/sysroot Since that is true, it adds the sysroot to C:/MinGW/test/prefix/include. I don't think so. Sysroot and prefix are completely independend things and this works for me on linux. Andrew you're right in that --with-sysroot=$sysroot prepends $sysroot to $prefix/include - $sysroot/$prefix/include. This is consistent since at least gcc-3.4.6. But IMHO this doesn't make any sense. You will hardly find such a path in any setup. I suggest to remove the $sysroot prefix in this particular case at least for *-*-mingw32 targets. Because it prevents building a relocatable gcc setup including the runtime which works without additional settings for the include search path. But that's important for these targets. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41943
[Bug preprocessor/41943] include search path composition is bogus
--- Comment #1 from pinskia at gcc dot gnu dot org 2009-11-04 21:19 --- That is because the way you configured GCC with --with-sysroot=/mingw/test/sysroot Since that is true, it adds the sysroot to C:/MinGW/test/prefix/include. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41943