Bug 37244 - libstdc++ fails to build
Summary: libstdc++ fails to build
Status: RESOLVED INVALID
Alias: None
Product: gcc
Classification: Unclassified
Component: libstdc++ (show other bugs)
Version: 4.3.1
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-08-26 17:40 UTC by Hin-Tak Leung
Modified: 2008-08-26 18:19 UTC (History)
1 user (show)

See Also:
Host: alphaev68-dec-osf5.1a
Target: alphaev68-dec-osf5.1a
Build: alphaev68-dec-osf5.1a
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Hin-Tak Leung 2008-08-26 17:40:42 UTC
Some of the headers are not created? This is the first bits the fails:

-----------
make[2]: Entering directory `/home/htl10/tmp-build/obj-dir/alphaev68-dec-osf5.1a/libstdc++-v3'
...
make[3]: Entering directory `/home/htl10/tmp-build/obj-dir/alphaev68-dec-osf5.1a/libstdc++-v3'
Making all in include
make[4]: Entering directory `/home/htl10/tmp-build/obj-dir/alphaev68-dec-osf5.1a/libstdc++-v3/include'
mkdir -p ./alphaev68-dec-osf5.1a/bits/extc++.h.gch
/home/htl10/tmp-build/obj-dir/./gcc/xgcc -shared-libgcc -B/home/htl10/tmp-build/obj-dir/./gcc -nostdinc++ -L/home/htl10/tmp-build/o
bj-dir/alphaev68-dec-osf5.1a/libstdc++-v3/src -L/home/htl10/tmp-build/obj-dir/alphaev68-dec-osf5.1a/libstdc++-v3/src/.libs -B/usr/l
ocal/alphaev68-dec-osf5.1a/bin/ -B/usr/local/alphaev68-dec-osf5.1a/lib/ -isystem /usr/local/alphaev68-dec-osf5.1a/include -isystem 
/usr/local/alphaev68-dec-osf5.1a/sys-include -Winvalid-pch -x c++-header -O2 -g -g -O2   -mieee -I/home/htl10/tmp-build/obj-dir/alp
haev68-dec-osf5.1a/libstdc++-v3/include/alphaev68-dec-osf5.1a -I/home/htl10/tmp-build/obj-dir/alphaev68-dec-osf5.1a/libstdc++-v3/in
clude -I/home/htl10/tmp-build/gcc-4.3.1/libstdc++-v3/libsupc++ -O2 -g /home/htl10/tmp-build/gcc-4.3.1/libstdc++-v3/include/precompi
led/extc++.h -o alphaev68-dec-osf5.1a/bits/extc++.h.gch/O2g.gch
In file included from /home/htl10/tmp-build/obj-dir/alphaev68-dec-osf5.1a/libstdc++-v3/include/ext/pb_ds/detail/standard_policies.h
pp:51,
                 from /home/htl10/tmp-build/obj-dir/alphaev68-dec-osf5.1a/libstdc++-v3/include/ext/pb_ds/assoc_container.hpp:52,
                 from /home/htl10/tmp-build/gcc-4.3.1/libstdc++-v3/include/precompiled/extc++.h:60:
/home/htl10/tmp-build/obj-dir/alphaev68-dec-osf5.1a/libstdc++-v3/include/ext/pb_ds/hash_policy.hpp:57:87: error: ext/pb_ds/detail/r
esize_policy/hash_load_check_resize_trigger_size_base.hpp: No such file or directory
/home/htl10/tmp-build/obj-dir/alphaev68-dec-osf5.1a/libstdc++-v3/include/ext/pb_ds/hash_policy.hpp:395:93: error: ext/pb_ds/detail/
resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp: No such file or directory

...make[4]: *** [alphaev68-dec-osf5.1a/bits/extc++.h.gch/O2g.gch] Error 1
make[4]: Leaving directory `/home/htl10/tmp-build/obj-dir/alphaev68-dec-osf5.1a/libstdc++-v3/include'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/htl10/tmp-build/obj-dir/alphaev68-dec-osf5.1a/libstdc++-v3'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/htl10/tmp-build/obj-dir/alphaev68-dec-osf5.1a/libstdc++-v3'
make[1]: *** [all-target-libstdc++-v3] Error 2
make[1]: Leaving directory `/home/htl10/tmp-build/obj-dir'
make: *** [bootstrap] Error 2
-------------------


I have the full ../gcc-4.3.1/configure && make bootstrap >& log
if somebody wants to look at it.

I had looked at the buildstat and it doesn't look as if anybody has tried to build gcc on Tru64 since 4.1.1?
Comment 1 Andrew Pinski 2008-08-26 17:45:38 UTC
>Some of the headers are not created?

What tar did you use?  Because the filename for this file goes past the limit of a POSIX tar, GNU tar is required to untar the GCC now.
Comment 2 Hin-Tak Leung 2008-08-26 18:04:34 UTC
Oh dear, sorry about the noise - Looking at my own error message about the missing files and where they are, I found that it is the vendor tar which is broken - it truncates file path names to 100 characters - this is normally not noticeable except in the libstdc++ dir where there are a lot of files with long names. e.g. 

gnu tar:
---------
$ ls gcc-4.3.1/libstdc++-v3/include/ext/pb_ds/detail/resize_policy
cc_hash_max_collision_check_resize_trigger_imp.hpp  hash_standard_resize_policy_imp.hpp
hash_exponential_size_policy_imp.hpp                sample_resize_policy.hpp
hash_load_check_resize_trigger_imp.hpp              sample_resize_trigger.hpp
hash_load_check_resize_trigger_size_base.hpp        sample_size_policy.hpp
hash_prime_size_policy_imp.hpp

vendor tar:
----
$ ls  gcc-4.3.1/libstdc++-v3/include/ext/pb_ds/detail/resize_policy
cc_hash_max_collision_check_resize_tri  hash_standard_resize_policy_imp.hpp
hash_exponential_size_policy_imp.hpp    sample_resize_policy.hpp
hash_load_check_resize_trigger_imp.hpp  sample_resize_trigger.hpp
hash_load_check_resize_trigger_size_ba  sample_size_policy.hpp
hash_prime_size_policy_imp.hpp
---------- 

Can somebody update the platform-specific notes please:
http://gcc.gnu.org/install/specific.html ?



 
Comment 3 Hin-Tak Leung 2008-08-26 18:06:53 UTC
Yes, mid-air collision - I realised the problem as soon as I looked at my own bug report and looked at the directory again.

Still, the POSIX tar vs GNU tar issue could be spelt out a bit :-(. 
(spent a few days on this...)
Comment 4 Andrew Pinski 2008-08-26 18:10:09 UTC
> Can somebody update the platform-specific notes please:
> http://gcc.gnu.org/install/specific.html ?

> Still, the POSIX tar vs GNU tar issue could be spelt out a bit :-(. 
> (spent a few days on this...)

It is spelled out on http://gcc.gnu.org/install/prerequisites.html :).

From that link:
GNU tar version 1.14 (or later)
Necessary (only on some platforms) to untar the source code. Many systems' tar programs will also work, only try GNU tar if you have problems. 

-- Pinski

Comment 5 Hin-Tak Leung 2008-08-26 18:19:43 UTC
(In reply to comment #4)
> From that link:
> GNU tar version 1.14 (or later)
> Necessary (only on some platforms) to untar the source code. Many systems' tar
> programs will also work, only try GNU tar if you have problems. 

That's so not obvious :-( ("many system's tar will work") - particularly since
I had built gcc (3.4.x) on the same machine before. I have taken the trouble to
install binutils, mpfr, gmp (because gcc 4.x needs those)... and even the GNU
bash/GNU make requirement were easy, since ./configure && make fails very early
 - but the long path is not obvious, since it fails very late - and possibly only in the stdc++ and java stuff - gcc and gfortran are not affected.

Can I suggest a line be added to http://gcc.gnu.org/install/specific.html,
saying HP/DEC tar does not work?