
Solaris 10 Sparc で gcc-4.9.0 をビルドしようとしています。
gmpは正常にビルドされ、インストールされました
/application/gmp-6.0.0a
mpfrも正常に構築され、インストールされました。
/application/mpfr-3.1.2
mpcは
/application/mpc-1.0.2
次に、アプリケーション ディレクトリに gcc-4.9.0 というサブディレクトリを作成します。このサブディレクトリにも src が含まれ、src には objdir が含まれます。抽出された gcc-4.9.0.tar.gz は src ディレクトリに移動されました。構造は次のようになります。
/application
- /gcc-4.9.0
-/ src
- /objdir
- /gcc-4.9.0 // The extracted gcc-4.9.0.tar.gz
私はこのように設定しました
cd /application/gcc-4.9.0/src/objdir
# ../configure --build=sparc-sun-solaris2.10
--with-gmp=/application/gmp-6.0.0a
--with-mpfr=/application/mpfr-3.1.2
--with-mpc=/application/mpc-1.0.2
--with-gnu-as
--with-gnu-ld
--enable-shared
--disable-nls
--enable-languages=c,c++,objc
--prefix=/application/gcc-4.9.0
設定は成功し、makeファイルが作成されました
私が走った
gmake
残念ながら、これは数分間実行されましたが、このエラーで終了しました。
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details
残念ながら、config.log には包括的なメッセージが含まれていません。
何週間もこの状態が続いています。どうすれば解決できるでしょうか?
config.log の内容は次のとおりです。
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by GNU C Runtime Library configure 1.0, which was
generated by GNU Autoconf 2.64. Invocation command line was
$ /application/gcc-4.9.0/src/libgcc/configure --cache-file=./config.cache --enable-multilib --with-gmp=/application/gmp-6.0.0a --with-mpfr=/application/mpfr-3.1.2 --with-mpc=/application/mpc-1.0.2 --with-gnu-as --with-gnu-ld --enable-shared --disable-nls --prefix=/application/gcc-4.9.0 --enable-languages=c,c++,lto,objc --program-transform-name=s,y,y, --disable-option-checking --with-target-subdir=sparc-sun-solaris2.10 --build=sparc-sun-solaris2.10 --host=sparc-sun-solaris2.10 --target=sparc-sun-solaris2.10 --srcdir=../../../libgcc --disable-intermodule --enable-checking=yes,types --disable-coverage --enable-languages=c,c++,lto --disable-build-format-warnings
## --------- ##
## Platform. ##
## --------- ##
hostname = XXXXXXX
uname -m = sun4v
uname -r = 5.10
uname -s = SunOS
uname -v = Generic_150400-28
/usr/bin/uname -p = sparc
/bin/uname -X = System = SunOS
Node = XXXXXXXX
Release = 5.10
KernelID = Generic_150400-28
Machine = sun4v
BusType = <unknown>
Serial = <unknown>
Users = <unknown>
OEM# = 0
Origin# = 1
NumCPU = 256
/bin/arch = sun4
/usr/bin/arch -k = sun4v
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown
PATH: /usr/sbin
PATH: /usr/bin
PATH: /usr/ccs/bin
PATH: /usr/openwin/bin
PATH: /usr/dt/bin
PATH: /usr/platform/sun4v/sbin
PATH: /opt/sun/bin
PATH: /opt/SUNWexplo/bin
PATH: /opt/SUNWsneep/bin
PATH: /opt/CTEact/bin
PATH: /usr/local/bin
PATH: /usr/sfw/bin
## ----------- ##
## Core tests. ##
## ----------- ##
configure:1980: creating cache ./config.cache
configure:2163: checking build system type
configure:2177: result: sparc-sun-solaris2.10
configure:2197: checking host system type
configure:2210: result: sparc-sun-solaris2.10
configure:2307: checking for --enable-version-specific-runtime-libs
configure:2320: result: no
configure:2368: checking for a BSD-compatible install
configure:2436: result: /application/gcc-4.9.0/src/install-sh -c
configure:2452: checking for gawk
configure:2479: result: nawk
configure:2579: checking for sparc-sun-solaris2.10-ar
configure:2606: result: ar
configure:2671: checking for sparc-sun-solaris2.10-lipo
configure:2698: result: lipo
configure:2763: checking for sparc-sun-solaris2.10-nm
configure:2790: result: /application/gcc-4.9.0/src/objdir/./gcc/nm
configure:2855: checking for sparc-sun-solaris2.10-ranlib
configure:2882: result: ranlib
configure:2947: checking for sparc-sun-solaris2.10-strip
configure:2974: result: strip
configure:3036: checking whether ln -s works
configure:3040: result: yes
configure:3057: checking for sparc-sun-solaris2.10-gcc
configure:3084: result: /application/gcc-4.9.0/src/objdir/./gcc/xgcc -B/application/gcc-4.9.0/src/objdir/./gcc/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/bin/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/lib/ -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/include -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/sys-include
configure:3353: checking for C compiler version
configure:3362: /application/gcc-4.9.0/src/objdir/./gcc/xgcc -B/application/gcc-4.9.0/src/objdir/./gcc/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/bin/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/lib/ -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/include -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/sys-include --version >&5
xgcc (GCC) 4.9.0
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:3373: $? = 0
configure:3362: /application/gcc-4.9.0/src/objdir/./gcc/xgcc -B/application/gcc-4.9.0/src/objdir/./gcc/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/bin/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/lib/ -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/include -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/sys-include -v >&5
Reading specs from /application/gcc-4.9.0/src/objdir/./gcc/specs
COLLECT_GCC=/application/gcc-4.9.0/src/objdir/./gcc/xgcc
COLLECT_LTO_WRAPPER=/application/gcc-4.9.0/src/objdir/./gcc/lto-wrapper
Target: sparc-sun-solaris2.10
Configured with: ../configure --build=sparc-sun-solaris2.10 --with-gmp=/application/gmp-6.0.0a --with-mpfr=/application/mpfr-3.1.2 --with-mpc=/application/mpc-1.0.2 --with-gnu-as --with-gnu-ld --enable-shared --disable-nls --enable-languages=c,c++,objc --prefix=/application/gcc-4.9.0
Thread model: posix
gcc version 4.9.0 (GCC)
configure:3373: $? = 0
configure:3362: /application/gcc-4.9.0/src/objdir/./gcc/xgcc -B/application/gcc-4.9.0/src/objdir/./gcc/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/bin/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/lib/ -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/include -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/sys-include -V >&5
xgcc: error: unrecognized command line option '-V'
xgcc: fatal error: no input files
compilation terminated.
configure:3373: $? = 1
configure:3362: /application/gcc-4.9.0/src/objdir/./gcc/xgcc -B/application/gcc-4.9.0/src/objdir/./gcc/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/bin/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/lib/ -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/include -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/sys-include -qversion >&5
xgcc: error: unrecognized command line option '-qversion'
xgcc: fatal error: no input files
compilation terminated.
configure:3373: $? = 1
configure:3389: /application/gcc-4.9.0/src/objdir/./gcc/xgcc -B/application/gcc-4.9.0/src/objdir/./gcc/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/bin/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/lib/ -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/include -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/sys-include -o conftest -g -O2 conftest.c >&5
ld.so.1: cc1: fatal: libmpc.so.3: open failed: No such file or directory
xgcc: internal compiler error: Killed (program cc1)
no stack trace because unwind library not available
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
configure:3392: $? = 4
configure:3580: checking for suffix of object files
configure:3602: /application/gcc-4.9.0/src/objdir/./gcc/xgcc -B/application/gcc-4.9.0/src/objdir/./gcc/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/bin/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/lib/ -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/include -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/sys-include -c -g -O2 conftest.c >&5
ld.so.1: cc1: fatal: libmpc.so.3: open failed: No such file or directory
xgcc: internal compiler error: Killed (program cc1)
no stack trace because unwind library not available
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
configure:3606: $? = 4
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "GNU C Runtime Library"
| #define PACKAGE_TARNAME "libgcc"
| #define PACKAGE_VERSION "1.0"
| #define PACKAGE_STRING "GNU C Runtime Library 1.0"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL "http://www.gnu.org/software/libgcc/"
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:3620: error: in `/application/gcc-4.9.0/src/objdir/sparc-sun-solaris2.10/libgcc':
configure:3623: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_build=sparc-sun-solaris2.10
ac_cv_env_CC_set=set
ac_cv_env_CC_value='/application/gcc-4.9.0/src/objdir/./gcc/xgcc -B/application/gcc-4.9.0/src/objdir/./gcc/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/bin/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/lib/ -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/include -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/sys-include '
ac_cv_env_CFLAGS_set=set
ac_cv_env_CFLAGS_value='-g -O2'
ac_cv_env_CPPFLAGS_set=set
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_LDFLAGS_set=set
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_build_alias_set=set
ac_cv_env_build_alias_value=sparc-sun-solaris2.10
ac_cv_env_host_alias_set=set
ac_cv_env_host_alias_value=sparc-sun-solaris2.10
ac_cv_env_target_alias_set=set
ac_cv_env_target_alias_value=sparc-sun-solaris2.10
ac_cv_host=sparc-sun-solaris2.10
ac_cv_prog_AR=ar
ac_cv_prog_AWK=nawk
ac_cv_prog_CC='/application/gcc-4.9.0/src/objdir/./gcc/xgcc -B/application/gcc-4.9.0/src/objdir/./gcc/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/bin/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/lib/ -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/include -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/sys-include '
ac_cv_prog_LIPO=lipo
ac_cv_prog_NM=/application/gcc-4.9.0/src/objdir/./gcc/nm
ac_cv_prog_RANLIB=ranlib
ac_cv_prog_STRIP=strip
## ----------------- ##
## Output variables. ##
## ----------------- ##
AR='ar'
AWK='nawk'
CC='/application/gcc-4.9.0/src/objdir/./gcc/xgcc -B/application/gcc-4.9.0/src/objdir/./gcc/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/bin/ -B/application/gcc-4.9.0/sparc-sun-solaris2.10/lib/ -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/include -isystem /application/gcc-4.9.0/sparc-sun-solaris2.10/sys-include '
CFLAGS='-g -O2'
CPP=''
CPPFLAGS=''
DEFS=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EXEEXT=''
INSTALL_DATA='/application/gcc-4.9.0/src/install-sh -c -m 644'
INSTALL_PROGRAM='/application/gcc-4.9.0/src/install-sh -c'
INSTALL_SCRIPT='/application/gcc-4.9.0/src/install-sh -c'
LDFLAGS=''
LIBOBJS=''
LIBS=''
LIPO='lipo'
LN_S='ln -s'
LTLIBOBJS=''
MAINT='#'
NM='/application/gcc-4.9.0/src/objdir/./gcc/nm'
OBJEXT=''
PACKAGE_BUGREPORT=''
PACKAGE_NAME='GNU C Runtime Library'
PACKAGE_STRING='GNU C Runtime Library 1.0'
PACKAGE_TARNAME='libgcc'
PACKAGE_URL='http://www.gnu.org/software/libgcc/'
PACKAGE_VERSION='1.0'
PATH_SEPARATOR=':'
PICFLAG='-fPIC'
RANLIB='ranlib'
SHELL='/bin/bash'
STRIP='strip'
ac_ct_CC=''
asm_hidden_op=''
bindir='${exec_prefix}/bin'
build='sparc-sun-solaris2.10'
build_alias='sparc-sun-solaris2.10'
build_cpu='sparc'
build_libsubdir='build-sparc-sun-solaris2.10'
build_os='solaris2.10'
build_subdir='build-sparc-sun-solaris2.10'
build_vendor='sun'
cpu_type=''
datadir='${datarootdir}'
datarootdir='${prefix}/share'
decimal_float=''
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
double_type_size=''
dvidir='${docdir}'
enable_decimal_float=''
enable_shared='yes'
enable_vtable_verify='no'
exec_prefix='NONE'
extra_parts=''
fixed_point=''
host='sparc-sun-solaris2.10'
host_alias='sparc-sun-solaris2.10'
host_cpu='sparc'
host_noncanonical='sparc-sun-solaris2.10'
host_os='solaris2.10'
host_subdir='.'
host_vendor='sun'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
libgcc_topdir='../../../libgcc/..'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
long_double_type_size=''
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/application/gcc-4.9.0'
program_transform_name='s,y,y,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
set_have_cc_tls=''
set_use_emutls=''
sfp_machine_header=''
sharedstatedir='${prefix}/com'
slibdir='$(libdir)'
sysconfdir='${prefix}/etc'
target_alias='sparc-sun-solaris2.10'
target_noncanonical='sparc-sun-solaris2.10'
target_subdir='sparc-sun-solaris2.10'
thread_header=''
tm_defines=''
tm_file=''
tmake_file=''
toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)'
toolexeclibdir='$(libdir)'
vis_hide=''
## ----------- ##
## confdefs.h. ##
## ----------- ##
/* confdefs.h */
#define PACKAGE_NAME "GNU C Runtime Library"
#define PACKAGE_TARNAME "libgcc"
#define PACKAGE_VERSION "1.0"
#define PACKAGE_STRING "GNU C Runtime Library 1.0"
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL "http://www.gnu.org/software/libgcc/"
configure: exit 1
答え1
この質問から、gcc-4.9.0 を正常にビルドできました:https://stackoverflow.com/q/11502045/1363169; この回答を見ましたhttps://stackoverflow.com/a/16215539/1363169これはこのソリューションに特に役立ちました。
以下に実行した手順を示します
1. 必要なファイルをダウンロードします。 gcc をビルドするには、次の 3 つの依存関係が必要です。
a. GNU Multiple Precision Arithmetic Library (GMP) - gmp-6.0.0を使用しました
b. GNU Multiple Precision Floating-Point Reliably (MPFR) - mpfr-3.1.2を使用しました
c. GNU MPC - mpc-1.0.2 が使用されました。
これらはすべてここからダウンロードできます: https://ftp.gnu.org/pub/gnu/ミラーサイトからgccをダウンロードすることもできます。https://gcc.gnu.org/mirrors.html
2. 変数を宣言する
gccver=4.9.0
gmpver=6.0.0
mpfrver=3.1.2
mpcver=1.0.2
# where you downloaded source packages
pkgdir=$HOME
# where gcc will be built
rootdir=$HOME/gcc-tmp
# where gcc will be installed
prefix=/opt/gcc-${gccver}
# the languages you want gcc to support
langs=c,c++
3. ソースを保存したい新しいディレクトリを作成し、そこにソースを抽出します。
mkdir ${rootdir}
cd ${rootdir}
gzip -dc ${pkgdir}/gcc-${gccver}.tar.gz | tar xvf -
gzip -dc ${pkgdir}/gcc-${gmpver}.tar.gz | tar xvf -
gzip -dc ${pkgdir}/gcc-${mpfrver}.tar.gz | tar xvf -
gzip -dc ${pkgdir}/gcc-${mpcver}.tar.gz | tar xvf -
注意: ファイルの抽出中にチェックサム エラーなどの問題が発生した場合は、以下を参照してください。Solaris 10 で md5.sum を使用して .tar.gz を正しく抽出する方法解決策については。
4. 抽出したソースをgccソースディレクトリに移動します。
mv gmp-${gmpver} gcc-${gccver}/gmp
mv mpfr-${mpfrver} gcc-${gccver}/mpfr
mv mpc-${mpcver} gcc-${gccver}/mpc
5. ビルドディレクトリを作成し、そこに移動します
mkdir objdir
cd objdir
6. gcc を設定します。
${rootdir}/gcc-${gccver}/configure --prefix=${prefix} --enable-languages=${langs}
7. 次に、gccをビルドします。
gmake
8. 最後に、gcc をインストールします。
gmake install
それだ!
gcc.4.9.0 がビルドされましたが、この手順に従って他のバージョンもビルドできます。
新しくインストールした gcc が動作するかどうかをテストしたい場合は、次の手順に従ってください。
次のような単純なhello.cファイルを作成します。
#include <stdio.h>
int
main (void)
{
printf ("Hello, world!\n");
return 0;
}
ターミナルから
/opt//opt/gcc-4.9.0/bin/gcc hello.c -o hello
You should see hello filed created in the same directory as hello.c
答え2
ログ ファイルには、configure
非標準であるためシステムに存在しない GNU mp ライブラリにバインドする命令で呼び出したことが記録されています。
そんなこと本当にやったの?
これをわざとやったんですか?