[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: A beginner's question
From: |
Gaius Mulley |
Subject: |
Re: A beginner's question |
Date: |
Sat, 08 Apr 2023 16:17:33 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Rudolf Schubert <rudolf@muc.de> writes:
> The difference between my two installations is:
>
> the latter is on my Arch Linux and the former is on Debian sid. It seems that
> on both platforms there is some basic problem so that linking does not work.
> The warning on my Arch Linux does indicate that this is something with 'PIE'.
>
> Perhaps I've also missed some configuration steps or something? So my question
> would be:
>
> Whats steps exactly will I have to do in order to get a running gm2 from
> the gcc sources at git://gcc.gnu.org/git/gcc.git? Do you also use Debian sid
> or a different version? Will I need some special prerequisites? BTW, I'm
> using the 4 packages mpfr, mpc, isl, gmp from my system and did not download
> these into the gcc tree. I hope this would not make the difference?
Hi Rudolf,
Below are the commands I used to build gm2 on bullseye (taken from
script/typescript and pruned). Also does the new gcc link on your system
(helloworld.c for example)?
Here is the log of a command line build:
regards,
Gaius
$ git clone git://gcc.gnu.org/git/gcc.git gcc-read-write
Cloning into 'gcc-read-write'...
remote: Enumerating objects: 187051,Kdone.K
remote: Counting objects: 100% (187051/187051), done.K
remote: Compressing objects: 100% (14569/14569), done.K
remote: Totale28504129(delta6180433),4reused.174808M(delta.172296), pack-reused
2663361K
Receiving objects: 100% (2850412/2850412), 1.08 GiB | 2.65 MiB/s, done.
Resolving deltas: 100% (2342026/2342026), done.
Updating files: 100% (124215/124215), done.
$ rm -r build
$ mkdir build
$ cd build
$ ../gcc-read-write/configure --prefix=$HOME/opt --enable-languages=m2
--disable-multilib --disable-bootstrap
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
...
$ cd ../gcc-read-write
$ ./contrib/download_prerequisites
2023-04-08 14:51:21
URL:http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.2.1.tar.bz2
[2493916/2493916] -> "gmp-6.2.1.tar.bz2" [1]
2023-04-08 14:51:23
URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-4.1.0.tar.bz2
[1747243/1747243] -> "mpfr-4.1.0.tar.bz2" [1]
2023-04-08 14:51:24
URL:http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.2.1.tar.gz [838731/838731]
-> "mpc-1.2.1.tar.gz" [1]
2023-04-08 14:51:26
URL:http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.24.tar.bz2
[2261594/2261594] -> "isl-0.24.tar.bz2" [1]
gmp-6.2.1.tar.bz2: OK
mpfr-4.1.0.tar.bz2: OK
mpc-1.2.1.tar.gz: OK
isl-0.24.tar.bz2: OK
All prerequisites downloaded successfully.
$ cd ../build
$ ../gcc-read-write/configure --prefix=$HOME/opt --enable-languages=m2
--disable-multilib --disable-bootstrap
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking whether to enable maintainer-specific portions of Makefiles... no
...
configure: creating ./config.status
config.status: creating Makefile
$ make -j 30
make[1]: Entering directory '/home/gaius/GCC/build'
mkdir -p -- ./libiberty
mkdir -p -- ./intl
mkdir -p -- ./fixincludes
mkdir -p -- ./gmp
mkdir -p -- build-x86_64-pc-linux-gnu/libiberty
mkdir -p -- ./lto-plugin
mkdir -p -- build-x86_64-pc-linux-gnu/libcpp
mkdir -p -- ./zlib
mkdir -p -- ./libbacktrace
mkdir -p -- ./libcody
...
libtool: link: ranlib .libs/libhwasan.a
libtool: link: rm -fr .libs/libhwasan.lax
libtool: link: ( cd ".libs" && rm -f "libhwasan.la" && ln -s "../libhwasan.la"
"libhwasan.la" )
make[4]: Leaving directory
'/home/gaius/GCC/build/x86_64-pc-linux-gnu/libsanitizer/hwasan'
make[4]: Entering directory
'/home/gaius/GCC/build/x86_64-pc-linux-gnu/libsanitizer'
true "AR_FLAGS=rc" "CC_FOR_BUILD=gcc" "CFLAGS=-g -O2" "CXXFLAGS=-g -O2
-D_GNU_SOURCE" "CFLAGS_FOR_BUILD=-g -O2" "CFLAGS_FOR_TARGET=-g -O2"
"INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644"
"INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c"
"JC1FLAGS=" "LDFLAGS=" "LIBCFLAGS=-g -O2" "LIBCFLAGS_FOR_TARGET=-g -O2"
"MAKE=make" "MAKEINFO=makeinfo --split-size=5000000 --split-size=5000000 "
"PICFLAG=" "PICFLAG_FOR_TARGET=" "SHELL=/bin/bash" "RUNTESTFLAGS="
"exec_prefix=/home/gaius/opt" "infodir=/home/gaius/opt/share/info"
"libdir=/home/gaius/opt/lib" "prefix=/home/gaius/opt"
"includedir=/home/gaius/opt/include" "AR=ar"
"AS=/home/gaius/GCC/build/./gcc/as" "LD=/home/gaius/GCC/build/./gcc/collect-ld"
"LIBCFLAGS=-g -O2" "NM=/home/gaius/GCC/build/./gcc/nm" "PICFLAG="
"RANLIB=ranlib" "DESTDIR=" DO=all multi-do # make
make[4]: Leaving directory
'/home/gaius/GCC/build/x86_64-pc-linux-gnu/libsanitizer'
make[3]: Leaving directory
'/home/gaius/GCC/build/x86_64-pc-linux-gnu/libsanitizer'
make[2]: Leaving directory
'/home/gaius/GCC/build/x86_64-pc-linux-gnu/libsanitizer'
make[1]: Leaving directory '/home/gaius/GCC/build'
$ make check-m2
Running
/home/gaius/GCC/gcc-read-write/gcc/testsuite/gm2/ulmlib/std/pass/ulmlib-std-pass.exp
...
Running
/home/gaius/GCC/gcc-read-write/gcc/testsuite/gm2/ulmlib/sys/pass/ulmlib-sys-pass.exp
...
...
Running
/home/gaius/GCC/gcc-read-write/gcc/testsuite/gm2/warnings/returntype/fail/warnings-returntype-fail.exp
...
Running
/home/gaius/GCC/gcc-read-write/gcc/testsuite/gm2/warnings/returntype/pass/warnings-returntype-pass.exp
...
=== gm2 Summary ===
# of expected passes 11965
# of unexpected failures 6
...
$ make install
$ export PATH=$HOME/opt/bin:$PATH
$ cd ../tests
$ gm2 --version
gm2 (GCC) 13.0.1 20230408 (experimental)
Copyright (C) 2023 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.
$ gm2 -g hello.mod
$ export LD_LIBRARY_PATH=$HOME/opt/lib64
$ ./a.out
hello world
- Re: A beginner's question, (continued)
- Re: A beginner's question, Gaius Mulley, 2023/04/08
- Re: A beginner's question, Rudolf Schubert, 2023/04/08
- Re: A beginner's question, Michael Riedl, 2023/04/08
- Re: A beginner's question, Gaius Mulley, 2023/04/14
- Re: A beginner's question, Rudolf Schubert, 2023/04/14
- Re: A beginner's question, Gaius Mulley, 2023/04/19
- Re: A beginner's question, Rudolf Schubert, 2023/04/20
- Re: A beginner's question, Gaius Mulley, 2023/04/20
- Re: A beginner's question, john o goyo, 2023/04/20
- Re: A beginner's question, Rudolf Schubert, 2023/04/20
- Re: A beginner's question,
Gaius Mulley <=
- Re: A beginner's question, Gaius Mulley, 2023/04/08
- Re: A beginner's question, Gaius Mulley, 2023/04/13
Fwd: A beginner's question, Michael Riedl, 2023/04/07