gcc.spec [handle different c++config.h files if c++ is built with multilib]

Paweł Sikora pluto w agmk.net
Nie, 31 Gru 2006, 18:56:19 CET


+# this file differ (at least sparc/sparc64)
+%if %{with cxx}
+spath=builddir/%{_target_platform}
+sfile=libstdc++-v3/include/%{_target_platform}/bits/c++config.h
+dpath=$RPM_BUILD_ROOT%{_includedir}/c++/%{version}/%{_target_platform}/bits
+if ! cmp $spath/$sfile $spath/32/$sfile > /dev/null ; then
+       cp -f $spath/$sfile $dpath/c++config64.h
+       cp -f $spath/32/$sfile $dpath/c++config32.h
+       cat > $dpath/c++config.h <<EOF
+#include <bits/wordsize.h>
+#if __WORDSIZE == 32
+#include <bits/c++config32.h>
+#else
+#include <bits/c++config64.h>
+#endif
+EOF
+fi
+%endif
+%endif

czemu ma sluzyc ta zmiana? przeciez mulitlibowy g++ w zaleznosci
od -m32/-m64 sam wybiera odpowiedni katalog z naglowkami.

przykladowo na g++/x86-64 przy -m32 podaje dodatkowo do cc1plus
opcje `-imultilib 32'

"-imultilib dir
           Use dir as a subdirectory of the directory containing
           target-specific C++ headers."


Więcej informacji o liście dyskusyjnej pld-devel-pl