Simon J Mudd wrote:
I have managed to get the 3.4.4 gcc to build on AIX 5.1 using the
following "hacks" to the standard rpm spec file.
[EMAIL PROTECTED] COS4 ~]$ diff -u gcc.spec.orig gcc.spec
--- gcc.spec.orig 2005-07-22 08:35:44.018919511 +0200
+++ gcc.spec 2005-07-22 08:35:38.505805263 +0200
@@ -37,18 +37,20 @@
Group: Compiler
License: GPL
Version: %{V_full}
-Release: 20050707
+Release: 20050707.TEST_FOR_AIX
# package options
%option with_cxx yes
%option with_objc no
%option with_java no
%option with_f77 no
-%option with_optimize yes
+###%option with_optimize yes
+%option with_optimize no
%option with_profile no
-%option with_binutils yes
+###%option with_binutils yes
+%option with_binutils no
%option with_threads yes
-%option with_gcc no
+%option with_gcc yes
# list of sources
Source0:
ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2
@@ -114,6 +116,12 @@
;;
esac
%endif
+ ### temporary hack for AIX - don't use gnu ld or as
+ ### - add the --enable-version-specific-runtime-libs (but check
later if this is needed)
+ if [ $(uname) = "AIX" ]; then
+ l_with_gnu_ld_as=
+ l_with_ld_as="--with-as=/usr/bin/as --with-ld=/usr/bin/ld
--enable-version-specific-runtime-libs"
+ fi
# determine threads usage
%if "%{with_threads}" == "yes"
@@ -147,8 +155,15 @@
echo "am_cv_lib_iconv=no"
) >config.cache
+ ### AIX hack
+ if [ $(uname) = AIX ]; then
+ l_cc="gcc" # use the gcc compiler that IBM provides via an rpm
+ else
+ l_cc="%{l_cc}"
+ fi
+
# configure the package
- CC="%{l_cc}" \
+ CC="${l_cc}" \
CFLAGS="%{l_cflags}" \
%if "%{with_java}" == "yes"
CPPFLAGS="%{l_cppflags}" \
@@ -172,7 +187,8 @@
%if "%{with_java}" == "yes"
--with-system-zlib \
%endif
- ${l_with_gnu_ld_as}
+ ${l_with_gnu_ld_as} \
+ ${l_with_ld_as}
# explicitly redirect remaining gcc library directories
%{l_shtool} subst -v -s \
This make the rpm %build section complete without errors (the problem
appeared to be incorrect usage of ln/as.
However the %install phase still fails and I won't have time to look at
this until next week. The install fails at:
+ subdir=.
+ '[' .. = .. ']'
+ continue
+ for multilib in '`$RPM_BUILD_ROOT/openpkg/bin/gcc --print-multi-lib`'
++ echo 'pthread;@pthread'
++ sed -e 's/;.*$//'
+ subdir=pthread
+ '[' .pthread = .. ']'
+ mv /openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/pthread/libiberty.a
/openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/gcc/powerpc-ibm-aix5.1.0.0/3.4.4/pthread/
+ rm -rf /openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/pthread
+ for multilib in '`$RPM_BUILD_ROOT/openpkg/bin/gcc --print-multi-lib`'
++ echo 'power;@mcpu=power'
++ sed -e 's/;.*$//'
+ subdir=power
+ '[' .power = .. ']'
+ mv /openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/power/libiberty.a
/openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/gcc/powerpc-ibm-aix5.1.0.0/3.4.4/power/
+ rm -rf /openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/power
+ for multilib in '`$RPM_BUILD_ROOT/openpkg/bin/gcc --print-multi-lib`'
++ echo 'powerpc;@mcpu=powerpc'
++ sed -e 's/;.*$//'
+ subdir=powerpc
+ '[' .powerpc = .. ']'
+ mv /openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/powerpc/libiberty.a
/openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/gcc/powerpc-ibm-aix5.1.0.0/3.4.4/powerpc/
+ rm -rf /openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/powerpc
+ for multilib in '`$RPM_BUILD_ROOT/openpkg/bin/gcc --print-multi-lib`'
++ echo 'ppc64;@maix64'
++ sed -e 's/;.*$//'
+ subdir=ppc64
+ '[' .ppc64 = .. ']'
+ mv /openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/ppc64/libiberty.a
/openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/gcc/powerpc-ibm-aix5.1.0.0/3.4.4/ppc64/
+ rm -rf /openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/ppc64
+ for multilib in '`$RPM_BUILD_ROOT/openpkg/bin/gcc --print-multi-lib`'
++ echo 'pthread/power;@[EMAIL PROTECTED]'
++ sed -e 's/;.*$//'
+ subdir=pthread/power
+ '[' .pthread/power = .. ']'
+ mv '/openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/pthread/power/lib*.a'
/openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/gcc/powerpc-ibm-aix5.1.0.0/3.4.4/pthread/power/
mv: cannot rename
/openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/pthread/power/lib*.a to
/openpkg/RPM/TMP/gcc-3.4.4-root/openpkg/lib/gcc/powerpc-ibm-aix5.1.0.0/3.4.4/pthread/power//lib*.a:
No such file or directory
error: Bad exit status from /openpkg/RPM/TMP/rpm-tmp.11762 (%install)
RPM build errors:
Bad exit status from /openpkg/RPM/TMP/rpm-tmp.11762 (%install)
So the issue appears to be library location related causing the mv to
fail. This is similar to what has been seen before. I'll look at this
next week and see if I can work out the fix.
Regards,
Simon
______________________________________________________________________
The OpenPKG Project www.openpkg.org
User Communication List openpkg-users@openpkg.org
I was also able to get GCC to build, by using --define="with_binutils
no" and removing the RPM version of binutils. The mv command is failing
because of the parent directory being deleted a couple of commands
before. I really think it's the order of the libraries that's causing
the problem, but I don't know where to look. I'm wondering if taking out
the rm -rf command in the cleanup section would cause any problems.
Doug
______________________________________________________________________
The OpenPKG Project www.openpkg.org
User Communication List openpkg-users@openpkg.org