gm2
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]