GNU bug report logs - #40463
GCC fails to cross-build

Previous Next

Package: guix;

Reported by: Ludovic Courtès <ludovic.courtes <at> inria.fr>

Date: Mon, 6 Apr 2020 09:33:01 UTC

Severity: normal

To reply to this bug, email your comments to 40463 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#40463; Package guix. (Mon, 06 Apr 2020 09:33:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ludovic Courtès <ludovic.courtes <at> inria.fr>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Mon, 06 Apr 2020 09:33:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludovic.courtes <at> inria.fr>
To: bug-guix <at> gnu.org
Subject: GCC fails to cross-build
Date: Mon, 06 Apr 2020 11:31:53 +0200
Hello,

On current ‘master’ GCC fails to cross build:

--8<---------------cut here---------------start------------->8---
$ guix build -e '(@ (gnu packages gcc) gcc)' --target=arm-linux-gnueabihf --no-grafts --log-file
https://ci.guix.gnu.org/log/85q2g7xyfrqyzy1kc30kzw5y58c4i1ah-gcc-7.4.0
$ guix describe
Generacio 137	Mar 31 2020 09:13:55	(nuna)
  guix 011f941
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 011f9412795c141ea05fdfa3096ab252252d7080
--8<---------------cut here---------------end--------------->8---

The log reads (slightly edited):

--8<---------------cut here---------------start------------->8---
checking for -rdynamic.../tmp/guix-build-gcc-7.4.0.drv-0/gcc-7.4.0/libcc1/configure: line 10735: -T: command not found
no
configure: error: 
   Building GCC with plugin support requires a host that supports
   -fPIC, -shared, -ldl and -rdynamic.
--8<---------------cut here---------------end--------------->8---

That’s from libcc1/configure.  ‘-rdynamic’ is wrongfully determined to
not be working.  This is because gcc-plugin.m4 uses this:

       if test x$build = x$host; then
	 export_sym_check="objdump${exeext} -T"
       elif test x$host = x$target; then
	 export_sym_check="$gcc_cv_objdump -T"  # <--- here
       else
	 export_sym_check=
       fi

and for some reason $gcc_cv_objdump is empty.  Its value comes from the
top-level configure.ac:

  gcc_cv_objdump="$OBJDUMP_FOR_TARGET"

This would need a fix that does not apply to the cross-GCC, but here we
reach another problem: in gcc.scm we don’t distinguish between a
cross-compiler and a cross-compiled compiler because we just look at
‘%current-target-system’.

Thanks,
Ludo’.




This bug report was last modified 4 years and 235 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.