I installed gcc version 4.3.0 20070609 but did NOT put it on my path.
I typed: "export CC=/usr/test/bin/gcc" to use the install but off path gcc.
I compiled gcc version 4.3.0 20070613 and everything was fine until here:
/usr/test/bin/gcc -c -g -fkeep-inline-functions -gnatpg -gnata -nostdinc
-I- -I. -Iada -I/root/downloads/gcc-4_3-trunk/gcc/ada
/root/downloads/gcc-4_3-trunk/gcc/ada/back_end.adb -o ada/back_end.o
/usr/test/bin/gcc -c -g -fkeep-inline-functions -gnatpg -gnata -nostdinc
-I- -I. -Iada -I/root/downloads/gcc-4_3-trunk/gcc/ada
/root/downloads/gcc-4_3-trunk/gcc/ada/gnat1drv.adb -o ada/gnat1drv.o
gnatbind -C -nostdinc -I- -I. -Iada -I/root/downloads/gcc-4_3-trunk/gcc/ada -o
ada/b_gnat1.c -n ada/gnat1drv.ali
fatal error: file gnat1drv.ali is incorrectly formatted
make sure you are using consistent versions of gcc/gnatbind
12. R
nnnnnnnvnnnnnnnvvnvnnnnvnnnnnnnnnnnnnvnvnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn
|
make[3]: *** [ada/b_gnat1.c] Error 4
make[3]: Leaving directory `/opt/gcc-4_3-build-libcrlibm/gcc'
make[2]: *** [all-stage1-gcc] Error 2
make[2]: Leaving directory `/opt/gcc-4_3-build-libcrlibm'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/opt/gcc-4_3-build-libcrlibm'
make: *** [all] Error 2
# head -1 /opt/gcc-4_3-build-libcrlibm/gcc/ada/gnat1drv.ali
V "GNAT Lib v4.3"
# gnatbind -v | head -2
GNATBIND 4.2.0 20070501 (prerelease)
My complaint is this:
1): Since I am using "/usr/test/bin/gcc" why can't gcc simply call
"/usr/test/bin/gnatbind" instead of "gnatbind" (that searches the OS path).
2): The main configure script _does_ seem to look at environment variables for
GNATBIND and GNATMAKE but typing "configure --help" does not show this feature
- though "--help" mentions near every other environment variable supported.
3): You can't simply toss a "GNATBIND=/usr/test/bin/gnatbind" line at the top
of the offending Makefile when the build break as shown above.
If anyone else gets stuck like this you can put your un-pathed gcc 4.3.0
directory at the head of an "export PATH=..." statement (making it pathed) and
then type "make". Ada will now build successfully - since the 'un-pathed'
gnatbind is fetched from the first path in your "export PATH=..." statement.
Gcc should use it's own path (argv[0]) and any "-B"'s to look for any drivers
it calls (cc1, f77, pascal, gnat etc.).
Surely it is wrong to call gnatbind "bare-pathed". What if your PATH
environment was "PATH=/dir1:/dir2:/dir3" and you wanted to use
/dir3/bin/gcc-3.4 to compile an Ada file - would you rather hope to find
something in /dir3/bin instead of looking in /dir1 and then /dir2 first for
gnatbind ?
Which leavs another issue. If we use "/dir3/bin/gcc-3.4" would we want to use
"/dir3/bin/gnatbind-3.4" prior to looking for "/dir3/bin/gnatbind".
--
Summary: Ada gnatbind should utilize gcc's path and also check "-
B" path
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ada
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rob1weld at aol dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32333