On 2020-Jul-22, at 00:23, KIRIYAMA Kazuhiko <kiri at truefc.org> wrote: > Hi, Mark > > On Tue, 21 Jul 2020 17:51:41 +0900, > Mark Millard via freebsd-ports wrote: >> >> KIRIYAMA Kazuhiko kiri at truefc.org wrote on >> Tue Jul 21 02:33:25 UTC 2020 : >> >>> checking for iconv declaration... >>> extern size_t iconv (iconv_t cd, char * *inbuf, size_t >>> *inbytesleft, char * *outbuf, size_t *outbytesleft); >>> *** BFD does not support target native-unknown-freebsd13.0. >>> *** Look in bfd/config.bfd for supported targets. >>> gmake[3]: *** [Makefile:3563: configure-binutils] Error 1 >>> gmake[3]: Leaving directory >>> '/var/ports/work/usr/ports/devel/binutils/work-native/binutils-2.33.1' >>> gmake[2]: *** [Makefile:851: all] Error 2 >>> gmake[2]: Leaving directory >>> '/var/ports/work/usr/ports/devel/binutils/work-native/binutils-2.33.1' >>> ===> Compilation failed unexpectedly. >>> Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to >>> the maintainer. >>> *** Error code 1 >> >> lang/gcc9/Makefile references binutils via: >> >> BUILD_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils >> RUN_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils >> . . . >> USE_BINUTILS= yes >> >> The BUILD_DEPENDS and RUN_DEPENDS references to >> binutils are to the assembler that binutils >> generates and installs. So gcc9 needs to be able >> to use that assembler at both gcc9 build-time and >> gcc9 run-time. >> >> The notation leaves the FLAVOR implicit/empty and >> so should lead to devel/binutils/Makefile using >> its line: >> >> FLAVOR?= native >> >> to assign the "native" for its own internal logic >> to use. >> >> >> >> Hmm. The "target native-unknown-freebsd13.0" looks >> very odd to me. The only lines in the devel/binutils >> Makefile to deal with "unknown-" text directly are: >> >> # grep -r unknown- /usr/ports/devel/binutils/ >> /usr/ports/devel/binutils/Makefile:BUTARGET?= >> ${PKGNAMEPREFIX}unknown-${OPSYS:tl}${OSREL} >> /usr/ports/devel/binutils/Makefile:BUTARGET= >> x86_64-unknown-${OPSYS:tl}${OSREL} >> >> (I'll later deal with an indirection where "_" is >> replaced by "-".) >> >> Only the 1st line of that pair would potentially form >> "native-unknown-" text. >> >> So looking at the context of the first line I find >> (". . ." for omitted lines): >> >> FLAVOR?= native >> . . . >> .if ${FLAVOR} != native >> PKGNAMEPREFIX= ${FLAVOR:C/_/-/g}- >> PLIST= ${PKGDIR}/pkg-plist-${FLAVOR:C/_/-/g} >> >> .if ${PKGNAMEPREFIX:M*-*-} >> BUTARGET?= ${PKGNAMEPREFIX}${OPSYS:tl}${OSREL} >> .else >> BUTARGET?= ${PKGNAMEPREFIX}unknown-${OPSYS:tl}${OSREL} >> .endif >> >> . . . >> >> CONFIGURE_ARGS+= --disable-shared \ >> --target=${BUTARGET} >> .endif >> >> >> (That is also the only instance of "--target=" in the >> Makefile.) >> >> The ${FLAVOR} != native test should mean that the code >> is not used for FLAVOR being exactly "native". >> >> There is a separate code block for: >> >> .if ${FLAVOR} == native >> BUREMOVE= coffdump \ >> dlltool \ >> dllwrap \ >> nlmconv \ >> srconv \ >> sysdump \ >> windmc \ >> windres >> USES+= localbase >> CONFIGURE_ARGS+= --with-system-zlib \ >> --with-gmp=${LOCALBASE} \ >> --with-mpfr=${LOCALBASE} \ >> --enable-targets=all \ >> --enable-threads=yes >> INFO= as \ >> binutils \ >> gprof \ >> bfd \ >> ld >> .endif >> >> But that code does not specify a specific target >> (instead: "--enable-targets=all"). >> >> There is the FLAVOR value "riscv32_unknown_elf" that >> could produce target "riscv32-unknown-elf-freebsd13.0" >> but that is not what was reported as involved. >> >> I've ignored CROSS_TOOLCHAIN infrastructure as >> it was not mentioned as being in use. >> >> I do not see how devel/binutils/Makefile would >> generate "native-unknown-freebsd13.0" text on >> its own. >> >> >> Sorry I've not been able to identify anything for >> the error. >> >> I'll note that I build ports with poudriere (-devel >> variant) and have not had the problem in that >> context. >> > > I forgot to say that make target is `package-recursive'. I > tried to get PKGNAME with package-depends: > > > root@jdtpkxb:/usr/ports/lang/gcc9 # make -ki package-depends > gmp-6.2.0:math/gmp > indexinfo-0.3.1:print/indexinfo > mpfr-4.0.2:math/mpfr > mpc-1.1.0_2:math/mpc > native-binutils-2.33.1_2,1:devel/binutils > root@jdtpkxb:/usr/ports/lang/gcc9 # > > > But PKGNAME in devel/binutils is: > > root@jdtpkxb:/usr/ports/devel/binutils # make -VPKGNAME > binutils-2.33.1_2,1 > root@jdtpkxb:/usr/ports/devel/binutils # > > I don't know why it is. As far as I see > devel/binutils/Makefile, FLAVOR default is `native' and > PKGNAMEPREFIX should be null. > > What happens ? Hmm. The list from -ki package-depends is not always specific to one specific use. For example, on a development machine where various flavors of binutils have been built and installed. First I show the list of various flavors installed: # pkg info "*binutils*" aarch64-binutils-2.33.1_2,1 aarch64-none-elf-binutils-2.33.1_2,1 amd64-binutils-2.33.1_2,1 binutils-2.33.1_2,1 powerpc-binutils-2.33.1_2,1 powerpc64-binutils-2.33.1_2,1 (If you do the above does one of the lines of output have "native-" as a prefix?) But here is what -ki package-depends reports for lang/gcc9: # cd /usr/ports/lang/gcc9/ # make -ki package-depends gmp-6.2.0:math/gmp indexinfo-0.3.1:print/indexinfo mpfr-4.1.0:math/mpfr mpc-1.1.0_2:math/mpc aarch64-binutils-2.33.1_2,1:devel/binutils aarch64-none-elf-binutils-2.33.1_2,1:devel/binutils amd64-binutils-2.33.1_2,1:devel/binutils binutils-2.33.1_2,1:devel/binutils powerpc-binutils-2.33.1_2,1:devel/binutils powerpc64-binutils-2.33.1_2,1:devel/binutils Note that I do not get a one prefixed with "native-" but I get every one of the installed flavors of binutils is listed, not just one. For reference, in my context: # make -VPKGNAME binutils-2.33.1_2,1 What happens if you try: # pkg info native-binutils ? For reference, my context gets: # pkg info native-binutils pkg: No package(s) matching native-binutils # pkg info binutils binutils-2.33.1_2,1 Name : binutils Version : 2.33.1_2,1 Installed on : Thu Jan 30 01:34:52 2020 PST Origin : devel/binutils Architecture : FreeBSD:13:amd64 Prefix : /usr/local Categories : devel Licenses : GPLv3, LGPL3 Maintainer : b...@freebsd.org WWW : https://www.gnu.org/software/binutils/ Comment : GNU binary tools Options : NLS : on RELRO : off STATIC : off Shared Libs required: libintl.so.8 Annotations : FreeBSD_version: 1300075 cpe : cpe:2.3:a:gnu:binutils:2.33.1:::::freebsd13:x64:2 flavor : native repo_type : binary repository : custom Flat size : 658MiB Description : The GNU Binutils are a collection of binary tools. The main ones are: * ld - the GNU linker. * as - the GNU assembler. Most of these programs use BFD, the Binary File Descriptor library, to do low-level manipulation. Many of them also use the opcodes library to assemble and disassemble machine instructions. This port may be used as a replacement for the system binutils and support features from the latest versions of GCC. For cross-compilation, see the devel/cross-binutils port. WWW: https://www.gnu.org/software/binutils/ === Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar) _______________________________________________ freebsd-ports@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-ports To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"
Re: Why lang/gcc9 depends native-binutils ?
Mark Millard via freebsd-ports Wed, 22 Jul 2020 01:04:13 -0700
- Why lang/gcc9 depends native-binutils ? KIRIYAMA Kazuhiko
- Re: Why lang/gcc9 depends native-binu... Steve Kargl
- Re: Why lang/gcc9 depends native-binu... Mark Millard via freebsd-ports
- Re: Why lang/gcc9 depends native-... KIRIYAMA Kazuhiko
- Re: Why lang/gcc9 depends nat... Mark Millard via freebsd-ports
- Re: Why lang/gcc9 depends ... Mark Millard via freebsd-ports
- Re: Why lang/gcc9 dep... KIRIYAMA Kazuhiko
- Re: Why lang/gcc9 depends ... Thomas Mueller