Package Base Details: gcc-git

Git Clone URL: (read-only)
Submitter: Allan
Maintainer: jamespharvey20
Last Packager: jamespharvey20
Votes: 12
Popularity: 0.116803
First Submitted: 2013-06-26 03:43
Last Updated: 2019-04-29 23:01

Pinned Comments

jamespharvey20 commented on 2017-02-15 04:30

*** STICKY ***

These gcc*-git packages replace core's gcc* (non-git) packages. Technically, replacing the system gcc-libs can be dangerous. The possibility of a new upstream gcc git commit breaking your system isn't zero. When you compile and install this, you're using the latest git source, so you may be the first Arch user to be using that particular commit.

In practice, I haven't seen an Arch user report such a problem for many years. Just understand that if installing these packages causes your computer to eat you, don't have your loved ones blame me. Oh, and know that if things go wrong, all you *should* have to do is uninstall the git version and go back to a previously working git version or even the core version. You might be able to do this while your system is still running, or you might have to do something like boot off an Arch ISO CD.

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 Next › Last »

jamespharvey20 commented on 2018-10-18 04:33

Sorry, been working on this for the past few days actually.

I just pushed a bunch of commits all at once, rebuilding starting with core's gcc. I re-did all the modifications I've made that weren't pushed yet, in small commits to show small steps, hoping to find a mistake. (BTW, only the most recent pushed commit has a rebuilt .SRCINFO, as the other commits pushed with it at the same time were intended to show steps, and not necessarily be valid within themselves, or be intermediary places to actually use.)

After fixing the issue described below, I will update to use isl-0.20. (Doing so has no effect on the error.) I wouldn't be surprised if there's one or two other modifications to make to actually build the package. (Previously, provides gave basever, this is trying out a full pkgver, etc.)

If I manually follow the steps in the PKGBUILD (run everything in prepare(), the exact same configure, and make) it compiles correctly, and gets me manually to where the end of the PKGBUILD's build() would be.

If I run extra-x86_64-build (devtools, my preference), or even makepkg, it fails to compile, with the error below. This is before the PKGBUILD's build() finishes, specifically in running plain "make".

I've been quite confused. My next step is to look through what makepkg is doing, and hopefully figure out how to reproduce the failure manually and if needed figure out if it's possible to perform an efficient bisect. I'll also be posting on the PKGBUILD forums. Might reach upstream, but I'm not thinking the issue lies there since it compiles just fine outside of makepkg.

I don't know how the other AUR building tools will do, until this is fixed. I wouldn't be surprised if they all use makepkg at some point, so my bet is they will fail.

Using makepkg or extra-x86_64-build (devtools), I get this compilation error in stage 3 of the build (which is a verification step of gcc's build process.)

Full build error here (too hard to post here, AUR takes too much of it as formatting):


/build/gcc-git/src/gcc/gcc/config/i386/i386.c:19200:1: error: invalid operand in unary operation

19200 | output_fix_trunc (rtx_insn insn, rtx operands, bool fisttp)

   | ^~~~~~~~~~~~~~~~

/build/gcc-git/src/gcc/gcc/config/i386/i386.c:19200:1: error: incorrect sharing of tree nodes

(ssizetype) _19

_58 = (long unsigned int) ((ssizetype) _19 <= 7 ? 7 - (ssizetype) _19 : 0);

/build/gcc-git/src/gcc/gcc/config/i386/i386.c:19200: confused by earlier errors, bailing out

make[3]: *** [Makefile:2287: i386.o] Error 1

SpaceboyRoss commented on 2018-10-18 00:19

==> ERROR: pkgver in provides is not allowed to be empty.

marehr commented on 2018-05-31 14:54

Since a recent system update (It might be a pacman update), I can't build this anymore:

makepkg -si

==> ERROR: pkgver in provides is not allowed to be empty.

==> ERROR: An unknown error has occurred. Exiting...

Any help?

ssorgatem commented on 2018-03-16 13:28

It gives an error due to not finding x86_64-pc-linux-gnu/libcilkrts

ssorgatem commented on 2018-03-16 13:27

The packaging step doesn't work

EndlessEden commented on 2017-05-21 00:27

Please update the PKGBUILD to conform with binutils-git(s/binutils>=2.26/binutils>=2.29/)

jamespharvey20 commented on 2017-04-03 01:28

@giacombum. Also, I've never used yaourt before. But, out of curiosity, in a VM, I installed yaourt and successfully built gcc-git 7.0.1.r153096.7714131b8c8-1.

jamespharvey20 commented on 2017-04-02 04:21

@giacombum. This is caused by your CHOST environment variable being set incorrectly.

My bet is: (1) in your /etc/makepkg.conf, your CHOST is set to "x86_64-unknown-linux-gnu", rather than "x86_64-pc-linux-gnu"; and (2) there's probably an /etc/makepkg.conf.pacnew file. If this is the case, if you never made custom modifications to makepkg.conf, move the .pacnew file to the .conf file. Read up at, and read through pacman notifications when upgrading packages for the future.

Please comment back if this was the issue or not.

I ran into the exact failure you're having in late 2015 (you can see comments on this package) when upstream gcc git changed, and no longer expected the vendor portion of CHOST to be "unknown". On a x86_64 platform, it started expecting "pc".

In late 2015, I changed this PKGBUILD to have a workaround of changing unknown to pc, which should have worked for everyone on x86_64 platforms. On 2/15/2017, I changed the PKGBUILD to mirror the gcc (non git) package, which was able to avoid this workaround since /etc/makepkg.conf had been changed to use "pc".

You'll see in the beginning part of your build, it's properly using "x86_64-pc-linux-gnu". Then, you hit PKGBUILD line 110 (just after running "make") which is "make -C $CHOST/libstdc++-v3/doc doc-man-doxygen" which causes the failure.

giacombum commented on 2017-03-30 21:26

I obtain the following error:

/bin/sh ./libtool --tag=CC --mode=link /tmp/yaourt-tmp-giacomo/aur-gcc-git/src/gcc-build/./gcc/xgcc -B/tmp/yaourt-tmp-giacomo/aur-gcc-git/src/gcc-build/./gcc/ -B/usr/x86_64-pc-linux-gnu/bin/ -B/usr/x86_64-pc-linux-gnu/lib/ -isystem /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-include -mrtm -Wall -Werror -Wc,-pthread -g -march=native -O2 -fstack-protector-strong -Wl,-O1 -o -version-info 1:0:0 -Wl,--version-script,/tmp/yaourt-tmp-giacomo/aur-gcc-git/src/gcc/libitm/ -rpath /usr/lib/../lib aatree.lo alloc.lo alloc_c.lo alloc_cpp.lo barrier.lo beginend.lo clone.lo eh_cpp.lo local.lo query.lo retry.lo rwlock.lo useraction.lo util.lo sjlj.lo tls.lo method-serial.lo method-gl.lo method-ml.lo x86_sse.lo x86_avx.lo futex.lo
libtool: link: /tmp/yaourt-tmp-giacomo/aur-gcc-git/src/gcc-build/./gcc/xgcc -B/tmp/yaourt-tmp-giacomo/aur-gcc-git/src/gcc-build/./gcc/ -B/usr/x86_64-pc-linux-gnu/bin/ -B/usr/x86_64-pc-linux-gnu/lib/ -isystem /usr/x86_64-pc-linux-gnu/include -isystem /usr/x86_64-pc-linux-gnu/sys-include -shared -fPIC -DPIC .libs/aatree.o .libs/alloc.o .libs/alloc_c.o .libs/alloc_cpp.o .libs/barrier.o .libs/beginend.o .libs/clone.o .libs/eh_cpp.o .libs/local.o .libs/query.o .libs/retry.o .libs/rwlock.o .libs/useraction.o .libs/util.o .libs/sjlj.o .libs/tls.o .libs/method-serial.o .libs/method-gl.o .libs/method-ml.o .libs/x86_sse.o .libs/x86_avx.o .libs/futex.o -mrtm -pthread -march=native -Wl,-O1 -Wl,--version-script -Wl,/tmp/yaourt-tmp-giacomo/aur-gcc-git/src/gcc/libitm/ -Wl,-soname -Wl, -o .libs/
libtool: link: (cd ".libs" && rm -f "" && ln -s "" "")
libtool: link: (cd ".libs" && rm -f "" && ln -s "" "")
libtool: link: ar rc .libs/libitm.a aatree.o alloc.o alloc_c.o alloc_cpp.o barrier.o beginend.o clone.o eh_cpp.o local.o query.o retry.o rwlock.o useraction.o util.o sjlj.o tls.o method-serial.o method-gl.o method-ml.o x86_sse.o x86_avx.o futex.o
libtool: link: ranlib .libs/libitm.a
libtool: link: ( cd ".libs" && rm -f "" && ln -s "../" "" )
true DO=all multi-do # make
make[4]: Leaving directory '/tmp/yaourt-tmp-giacomo/aur-gcc-git/src/gcc-build/x86_64-pc-linux-gnu/libitm'
make[3]: Leaving directory '/tmp/yaourt-tmp-giacomo/aur-gcc-git/src/gcc-build/x86_64-pc-linux-gnu/libitm'
make[2]: Leaving directory '/tmp/yaourt-tmp-giacomo/aur-gcc-git/src/gcc-build/x86_64-pc-linux-gnu/libitm'
make[1]: Leaving directory '/tmp/yaourt-tmp-giacomo/aur-gcc-git/src/gcc-build'
make: *** x86_64-unknown-linux-gnu/libstdc++-v3/doc: No such file or directory. Stop.

jamespharvey20 commented on 2017-02-15 10:53

Awesome. Allan's adding a version to provides did the trick.

pacman now installs these gcc*-git packages without issue now, replacing core's non-git packages.