Re: Why lang/gcc9 depends native-binutils ?

2020-07-23 Thread Thomas Mueller
> 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

This prompted me to run "svn up" on FreeBSD ports tree.

But I found no devel/cross-binutils, you had my hopes up.

There is a cross/cross-binutils in (NetBSD) pkgsrc.

DESCR shows

The cross-binutils pkg is used only by the other `cross' pkgs.  The
binutils provides various binary manipulation utilities as well as the GNU
linker.  (The assembler is bundled with each individual cross pkg.)

Tom

___
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 ?

2020-07-22 Thread KIRIYAMA Kazuhiko
On Wed, 22 Jul 2020 18:08:50 +0900,
Mark Millard via freebsd-ports wrote:
> 
> On 2020-Jul-22, at 01:03, Mark Millard  wrote:
> 
> > On 2020-Jul-22, at 00:23, KIRIYAMA Kazuhiko  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 

Re: Why lang/gcc9 depends native-binutils ?

2020-07-22 Thread Mark Millard via freebsd-ports
On 2020-Jul-22, at 01:03, Mark Millard  wrote:

> On 2020-Jul-22, at 00:23, KIRIYAMA Kazuhiko  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 

Re: Why lang/gcc9 depends native-binutils ?

2020-07-22 Thread Mark Millard via freebsd-ports



On 2020-Jul-22, at 00:23, KIRIYAMA Kazuhiko  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 

Re: Why lang/gcc9 depends native-binutils ?

2020-07-22 Thread KIRIYAMA Kazuhiko
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 ?

> ===
> Mark Millard
> marklmi at yahoo.com
> ( dsl-only.net went
> away in early 2018-Mar)
> 
> ___
> freebsd-ports@freebsd.org mailing list
> 

Re: Why lang/gcc9 depends native-binutils ?

2020-07-21 Thread Mark Millard via freebsd-ports
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.


===
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 ?

2020-07-20 Thread Steve Kargl
On Tue, Jul 21, 2020 at 11:33:13AM +0900, KIRIYAMA Kazuhiko wrote:
> 
> lang/gcc9 depends devel/binutils with FLAVOR=native, so gcc9
> compilation stopped at devel/binutils. Why lang/gcc9 depends
> native-binutils ?
> 

Just a guess.  LTO.

-- 
Steve
___
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"