public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug preprocessor/41943]  New: include search path composition is bogus
@ 2009-11-04 21:16 rainer at emrich-ebersheim dot de
  2009-11-04 21:19 ` [Bug preprocessor/41943] " pinskia at gcc dot gnu dot org
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: rainer at emrich-ebersheim dot de @ 2009-11-04 21:16 UTC (permalink / raw)
  To: gcc-bugs

$prefix/include isn't searched!

$ /mingw/test/prefix/bin/gcc -v -E -o test.ii test.c
Using built-in specs.
COLLECT_GCC=C:\MinGW\test\prefix\bin\gcc.exe
COLLECT_LTO_WRAPPER=c:/mingw/test/prefix/bin/../libexec/gcc/i686-w64-mingw32/4.5.0/lto-wrapper.exe
Target: i686-w64-mingw32
Configured with: ../../../../../../src/gcc-4.5.0/configure
--prefix=/mingw/test/prefix --with-sysroot=/mingw/test/sysroot
--with-gmp=/mingw/test/prefix --with-mpfr=/mingw/test/prefix
--with-mpc=/mingw/test/prefix --with-gnu-as
--with-as=/mingw/test/prefix/bin/as.exe --with-gnu-ld
--with-ld=/mingw/test/prefix/bin/ld.exe --enable-bootstrap
--enable-threads=win32 --enable-languages=c --enable-checking=release
--disable-werror --disable-multilib --build=i686-w64-mingw32
Thread model: win32
gcc version 4.5.0 20091027 (experimental) (GCC) 
COLLECT_GCC_OPTIONS='-v' '-E' '-o' 'test.ii' '-mtune=generic'
 c:/mingw/test/prefix/bin/../libexec/gcc/i686-w64-mingw32/4.5.0/cc1.exe -E
-quiet -v -iprefix c:\mingw\test\prefix\bin\../lib/gcc/i686-w64-mingw32/4.5.0/
test.c -o test.ii -mtune=generic
ignoring nonexistent directory
"C:/MinGW/test/sysrootC:/MinGW/test/prefix/include"
ignoring duplicate directory
"c:/mingw/test/prefix/lib/gcc/../../lib/gcc/i686-w64-mingw32/4.5.0/include"
ignoring duplicate directory
"c:/mingw/test/prefix/lib/gcc/../../lib/gcc/i686-w64-mingw32/4.5.0/include-fixed"
ignoring nonexistent directory
"c:/mingw/test/prefix/lib/gcc/../../i686-w64-mingw32/include"
#include "..." search starts here:
#include <...> search starts here:
 c:\mingw\test\prefix\bin\../lib/gcc/i686-w64-mingw32/4.5.0/include
 c:\mingw\test\prefix\bin\../lib/gcc/i686-w64-mingw32/4.5.0/include-fixed
 C:/MinGW/test/sysroot/mingw/include
End of search list.
COMPILER_PATH=c:/mingw/test/prefix/bin/../libexec/gcc/i686-w64-mingw32/4.5.0/;c:/mingw/test/prefix/bin/../libexec/gcc/;c:/mingw/test/prefix/bin/../lib/gcc/i686-w64-mingw32/4.5.0/../../../../i686-w64-mingw32/bin/
LIBRARY_PATH=c:/mingw/test/prefix/bin/../lib/gcc/i686-w64-mingw32/4.5.0/;c:/mingw/test/prefix/bin/../lib/gcc/;c:/mingw/test/prefix/bin/../lib/gcc/i686-w64-mingw32/4.5.0/../../../../lib32/;c:/mingw/test/prefix/bin/../lib/gcc/i686-w64-mingw32/4.5.0/../../../../i686-w64-mingw32/lib/;c:/mingw/test/prefix/bin/../lib/gcc/i686-w64-mingw32/4.5.0/../../../;C:/MinGW/test/sysroot/mingw/lib/
COLLECT_GCC_OPTIONS='-v' '-E' '-o' 'test.ii' '-mtune=generic'

The interesting line is:
ignoring nonexistent directory
"C:/MinGW/test/sysrootC:/MinGW/test/prefix/include"

Here the sysroot path is stitched together with $prefix/include, which is
clearly wrong!

Rainer


-- 
           Summary: include search path composition is bogus
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: preprocessor
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rainer at emrich-ebersheim dot de
 GCC build triplet: *-*-mingw32
  GCC host triplet: *-*-mingw32
GCC target triplet: *-*-mingw32


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41943


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug preprocessor/41943] include search path composition is bogus
  2009-11-04 21:16 [Bug preprocessor/41943] New: include search path composition is bogus rainer at emrich-ebersheim dot de
@ 2009-11-04 21:19 ` pinskia at gcc dot gnu dot org
  2009-11-05  8:17 ` rainer at emrich-ebersheim dot de
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2009-11-04 21:19 UTC (permalink / raw)
  To: gcc-bugs



------- 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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug preprocessor/41943] include search path composition is bogus
  2009-11-04 21:16 [Bug preprocessor/41943] New: include search path composition is bogus rainer at emrich-ebersheim dot de
  2009-11-04 21:19 ` [Bug preprocessor/41943] " pinskia at gcc dot gnu dot org
@ 2009-11-05  8:17 ` rainer at emrich-ebersheim dot de
  2009-11-07 11:05 ` rainer at emrich-ebersheim dot de
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: rainer at emrich-ebersheim dot de @ 2009-11-05  8:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from rainer at emrich-ebersheim dot de  2009-11-05 08:16 -------
(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.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41943


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug preprocessor/41943] include search path composition is bogus
  2009-11-04 21:16 [Bug preprocessor/41943] New: include search path composition is bogus rainer at emrich-ebersheim dot de
  2009-11-04 21:19 ` [Bug preprocessor/41943] " pinskia at gcc dot gnu dot org
  2009-11-05  8:17 ` rainer at emrich-ebersheim dot de
@ 2009-11-07 11:05 ` rainer at emrich-ebersheim dot de
  2009-11-29 20:47 ` ktietz at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: rainer at emrich-ebersheim dot de @ 2009-11-07 11:05 UTC (permalink / raw)
  To: gcc-bugs



------- 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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug preprocessor/41943] include search path composition is bogus
  2009-11-04 21:16 [Bug preprocessor/41943] New: include search path composition is bogus rainer at emrich-ebersheim dot de
                   ` (2 preceding siblings ...)
  2009-11-07 11:05 ` rainer at emrich-ebersheim dot de
@ 2009-11-29 20:47 ` ktietz at gcc dot gnu dot org
  2009-12-03 21:56 ` ktietz at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: ktietz at gcc dot gnu dot org @ 2009-11-29 20:47 UTC (permalink / raw)
  To: gcc-bugs



-- 

ktietz at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-11-29 20:47:06
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41943


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug preprocessor/41943] include search path composition is bogus
  2009-11-04 21:16 [Bug preprocessor/41943] New: include search path composition is bogus rainer at emrich-ebersheim dot de
                   ` (3 preceding siblings ...)
  2009-11-29 20:47 ` ktietz at gcc dot gnu dot org
@ 2009-12-03 21:56 ` ktietz at gcc dot gnu dot org
  2009-12-04  8:24 ` rainer at emrich-ebersheim dot de
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: ktietz at gcc dot gnu dot org @ 2009-12-03 21:56 UTC (permalink / raw)
  To: gcc-bugs



------- 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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug preprocessor/41943] include search path composition is bogus
  2009-11-04 21:16 [Bug preprocessor/41943] New: include search path composition is bogus rainer at emrich-ebersheim dot de
                   ` (4 preceding siblings ...)
  2009-12-03 21:56 ` ktietz at gcc dot gnu dot org
@ 2009-12-04  8:24 ` rainer at emrich-ebersheim dot de
  2009-12-06 11:47 ` ktietz at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: rainer at emrich-ebersheim dot de @ 2009-12-04  8:24 UTC (permalink / raw)
  To: gcc-bugs



------- 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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug preprocessor/41943] include search path composition is bogus
  2009-11-04 21:16 [Bug preprocessor/41943] New: include search path composition is bogus rainer at emrich-ebersheim dot de
                   ` (5 preceding siblings ...)
  2009-12-04  8:24 ` rainer at emrich-ebersheim dot de
@ 2009-12-06 11:47 ` ktietz at gcc dot gnu dot org
  2009-12-06 20:01 ` ktietz at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: ktietz at gcc dot gnu dot org @ 2009-12-06 11:47 UTC (permalink / raw)
  To: gcc-bugs



------- 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.000000000 +0100
+++ gcc/gcc/gcc.c       2009-12-06 12:37:38.213190000 +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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug preprocessor/41943] include search path composition is bogus
  2009-11-04 21:16 [Bug preprocessor/41943] New: include search path composition is bogus rainer at emrich-ebersheim dot de
                   ` (6 preceding siblings ...)
  2009-12-06 11:47 ` ktietz at gcc dot gnu dot org
@ 2009-12-06 20:01 ` ktietz at gcc dot gnu dot org
  2010-07-23 18:32 ` ktietz at gcc dot gnu dot org
  2010-08-31 14:31 ` ktietz at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: ktietz at gcc dot gnu dot org @ 2009-12-06 20:01 UTC (permalink / raw)
  To: gcc-bugs



------- 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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug preprocessor/41943] include search path composition is bogus
  2009-11-04 21:16 [Bug preprocessor/41943] New: include search path composition is bogus rainer at emrich-ebersheim dot de
                   ` (7 preceding siblings ...)
  2009-12-06 20:01 ` ktietz at gcc dot gnu dot org
@ 2010-07-23 18:32 ` ktietz at gcc dot gnu dot org
  2010-08-31 14:31 ` ktietz at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: ktietz at gcc dot gnu dot org @ 2010-07-23 18:32 UTC (permalink / raw)
  To: gcc-bugs



------- 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=gcc&view=rev&rev=162479
Log:
2010-07-23  Kai Tietz  <kai.tietz@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


^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Bug preprocessor/41943] include search path composition is bogus
  2009-11-04 21:16 [Bug preprocessor/41943] New: include search path composition is bogus rainer at emrich-ebersheim dot de
                   ` (8 preceding siblings ...)
  2010-07-23 18:32 ` ktietz at gcc dot gnu dot org
@ 2010-08-31 14:31 ` ktietz at gcc dot gnu dot org
  9 siblings, 0 replies; 11+ messages in thread
From: ktietz at gcc dot gnu dot org @ 2010-08-31 14:31 UTC (permalink / raw)
  To: gcc-bugs



------- 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


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2010-08-31 14:31 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-11-04 21:16 [Bug preprocessor/41943] New: include search path composition is bogus rainer at emrich-ebersheim dot de
2009-11-04 21:19 ` [Bug preprocessor/41943] " pinskia at gcc dot gnu dot org
2009-11-05  8:17 ` rainer at emrich-ebersheim dot de
2009-11-07 11:05 ` rainer at emrich-ebersheim dot de
2009-11-29 20:47 ` ktietz at gcc dot gnu dot org
2009-12-03 21:56 ` ktietz at gcc dot gnu dot org
2009-12-04  8:24 ` rainer at emrich-ebersheim dot de
2009-12-06 11:47 ` ktietz at gcc dot gnu dot org
2009-12-06 20:01 ` ktietz at gcc dot gnu dot org
2010-07-23 18:32 ` ktietz at gcc dot gnu dot org
2010-08-31 14:31 ` ktietz at gcc dot gnu dot org

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).