Skip to content

Instantly share code, notes, and snippets.

@major
Created February 18, 2014 03:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save major/9064414 to your computer and use it in GitHub Desktop.
Save major/9064414 to your computer and use it in GitHub Desktop.
Building zerovm toolchain on Fedora 20
[root@zerovm zvm-toolchain]# make -j4
Makefile:1036: target `SRC/directory.patch' given more than once in the same rule.
Makefile:1036: target `SRC/directory.patch' given more than once in the same rule.
Makefile:1036: target `SRC/directory.patch' given more than once in the same rule.
make -f Makefile sdkdirs
make[1]: Entering directory `/root/zvm-toolchain'
Makefile:1036: target `SRC/directory.patch' given more than once in the same rule.
Makefile:1036: target `SRC/directory.patch' given more than once in the same rule.
Makefile:1036: target `SRC/directory.patch' given more than once in the same rule.
echo "Creating the SDK tree at /root/zvm-root"
Creating the SDK tree at /root/zvm-root
# Create installation directory for 64-bit libraries
# See http://code.google.com/p/nativeclient/issues/detail?id=1975
install -m 755 -d "/root/zvm-root/x86_64-nacl/lib"
# Create alias for libgcc_s.so
# TODO: fix MULTILIB_OSDIRNAMES in gcc/config/i386/t-nacl64
# and get rid of this!
ln -sfn lib /root/zvm-root/x86_64-nacl/lib64
# Create installation directory for 32-bit libraries
install -m 755 -d "/root/zvm-root/x86_64-nacl/lib32"
# Create alias for newlib
# Newlib uses "gcc -print-multi-lib" to determine multilib subdirectory
# names and installs under refix accordingly. This seems confusing,
# as "-print-multi-lib" uses MULTILIB_DIRNAMES, which is for libgcc,
# while for newlib it looks better to use MULTILIB_OSDIRNAMES, which is
# for system libraries. In our case these are "/lib" and "/lib/32" vs.
# "/lib" and "/lib32" respectively. As a result, 32-bit newlib is
# installed under "/lib/32" but searched under "/lib32".
# We fix this by making "/lib/32" an alias for "/lib32".
# TODO: sounds odd - probably my understanding is wrong?
# Go ask someone smart...
ln -sfn ../lib32 /root/zvm-root/x86_64-nacl/lib/32
make[1]: Leaving directory `/root/zvm-toolchain'
cp -f SRC/gcc/COPYING* /root/zvm-root
make -f Makefile BUILD/stamp-x86_64-nacl-binutils
make[1]: Entering directory `/root/zvm-toolchain'
Makefile:1036: target `SRC/directory.patch' given more than once in the same rule.
Makefile:1036: target `SRC/directory.patch' given more than once in the same rule.
Makefile:1036: target `SRC/directory.patch' given more than once in the same rule.
rm -rf BUILD/build-binutils-x86_64-nacl
mkdir BUILD/build-binutils-x86_64-nacl
# We'd like to build binutils with -Werror, but there are a
# number of warnings in the Mac version of GCC that prevent
# us from building with -Werror today.
cd BUILD/build-binutils-x86_64-nacl && \
CC="gcc -m32" \
CFLAGS="-O2 -g" \
LDFLAGS="-s" \
../../SRC/binutils/configure \
--prefix=/root/zvm-root \
--target=x86_64-nacl \
--with-sysroot=/root/zvm-root/x86_64-nacl \
--disable-werror --enable-deterministic-archives --without-zlib
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-pc-nacl
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /usr/bin/sed
checking for gawk... gawk
checking for gcc... gcc -m32
checking for C compiler default output file name...
configure: error: in `/root/zvm-toolchain/BUILD/build-binutils-x86_64-nacl':
configure: error: C compiler cannot create executables
See `config.log' for more details.
make[1]: *** [BUILD/stamp-x86_64-nacl-binutils] Error 77
make[1]: Leaving directory `/root/zvm-toolchain'
make: *** [build-with-glibc] Error 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment