Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Aug 2018 12:04:43 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        John Baldwin <jhb@FreeBSD.org>, Ed Maste <emaste@freebsd.org>
Cc:        Gerald Pfeifer <gerald@pfeifer.com>, mat@FreeBSD.org, FreeBSD Ports <freebsd-ports@freebsd.org>, Bryan Drewery <bdrewery@FreeBSD.org>
Subject:   Re: Removing objdump breaks GCC configure
Message-ID:  <CEA44C06-9CBE-40A8-A99A-DEE02DF58703@yahoo.com>
In-Reply-To: <0F5EA96D-7C2E-403C-A8D0-530D2EA4B682@yahoo.com>
References:  <3A54CD6F-FEE9-4813-97B8-76A3E619D7F4@yahoo.com> <884de41d-011e-a025-bfec-4e61b5546336@FreeBSD.org> <47AE95CB-1BD7-42DA-AA17-3EC0252FAF59@yahoo.com> <aac81a01-d9fa-703b-b1b3-577537bc8956@FreeBSD.org> <381572D9-6338-4DF4-B731-860557B2F666@yahoo.com> <CE2DB859-D47E-40D2-8B92-0FBD0913123B@yahoo.com> <6047CF45-733C-4331-B640-4A501F48B698@yahoo.com> <73D4B099-C694-489C-AD17-89F3139058A6@yahoo.com> <cf0f412b-5ee6-6543-88f8-fe05c0cd9885@FreeBSD.org> <0F5EA96D-7C2E-403C-A8D0-530D2EA4B682@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
[I also ran into the issue for sysutils/u-boot-pine64 builds in
my context (WITHOUT_BINUTILS).]

On 2018-Aug-1, at 3:08 PM, Mark Millard <marklmi at yahoo.com> wrote:

> On 2018-Aug-1, at 1:29 PM, John Baldwin <jhb at FreeBSD.org> wrote:
>=20
>> On 7/29/18 9:02 PM, Mark Millard wrote:
>>>> It looks like configure uses objdump (without a path-prefix) for
>>>> export_sym_check :
>>>>=20
>>>>  case "${host}" in
>>>>    *-*-darwin*)
>>>>      if test x$build =3D x$host; then
>>>>        export_sym_check=3D"nm${exeext} -g"
>>>>      elif test x$host =3D x$target; then
>>>>        export_sym_check=3D"$gcc_cv_nm -g"
>>>>      else
>>>>        export_sym_check=3D
>>>>      fi
>>>>    ;;
>>>>    *)
>>>>      if test x$build =3D x$host; then
>>>>        export_sym_check=3D"objdump${exeext} -T"
>>>>      elif test x$host =3D x$target; then
>>>>        export_sym_check=3D"$gcc_cv_objdump -T"
>>>>      else
>>>>        export_sym_check=3D
>>>>      fi
>>>>    ;;
>>>>  esac
>>>>=20
>>>> Note that this would not be the objdump from =
devel/powerpc64-binutils
>>>> but one for amd64 (in my example) such as from devel/binutils or
>>>> devel/amd64-binutils for my context.
>>>>=20
>>>> Note the lack of any alternative to objdump use (for build matching =
host).
>>>=20
>>> # svnlite diff /usr/ports/devel/powerpc64-gcc/Makefile
>>> Index: /usr/ports/devel/powerpc64-gcc/Makefile
>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
>>> --- /usr/ports/devel/powerpc64-gcc/Makefile	(revision 475470)
>>> +++ /usr/ports/devel/powerpc64-gcc/Makefile	(working copy)
>>> @@ -16,7 +16,8 @@
>>> LIB_DEPENDS=3D	libgmp.so:math/gmp \
>>> 		libmpfr.so:math/mpfr \
>>> 		libmpc.so:math/mpc
>>> -BUILD_DEPENDS=3D	${BU_PREFIX}-as:devel/${PKGNAMEPREFIX}binutils
>>> +BUILD_DEPENDS=3D	${BU_PREFIX}-as:devel/${PKGNAMEPREFIX}binutils \
>>> +		objdump:devel/binutils
>>> RUN_DEPENDS=3D	${BU_PREFIX}-as:devel/${PKGNAMEPREFIX}binutils
>>>=20
>>> USES=3D	gmake iconv libtool tar:xz makeinfo compiler
>>=20
>> Context trimmed a bit, subject changed, and I've added Ed to the cc =
as he's
>> the one who removed objdump.  It seems that GCC at least has a hidden
>> dependency on objdump.  Ed, were the lang/gcc* ports updated when =
objdump
>> was removed to list it as dependency for the plugin functionality?  =
If not,
>> they might also need a similar fix.
>=20
> devel/<?>-gcc cross compiler builds:
> Cross builds required the builder's objdump and possibly the target's
> too (as well as other target binutils). But for the target that is the =
same
> <?> in devel/<?>-binutils and devel/<?>-gcc and likely was already
> covered.
>=20
> (I may have missed other builder-binutil tool references but know
> objdump for sure.)
>=20
> When the builder architecture is also the target as part of the
> port definition (all lang/gcc* ?), devel/binutils is likely already
> required and then covers all objdump use as far as I can tell.
>=20
> (I'm not sure if the normal package builders are omitting system
> binutils yet or if they might always have devel/binutils installed.)
>=20
>>> Note: Various other autoconfig .ac files for various ports
>>> might also make assumptions about some binutils for the
>>> building archteiture, assumptions that various FreeBSD
>>> architectures need not automatically provide for: ones for
>>> which WITHOUT_BINUTILS=3D can be used.
>>=20
>> I believe Ed did an exp-run before disabling objdump by default (or =
maybe
>> that change is still pending?).  I'm not sure if that exp-run would =
catch
>> more subtle changes like this.
>=20
> My guess is that only ports with cross-build abilities might have the
> "some builder binutils tool(s) needed" issue.

I'm now using:

# svnlite diff /usr/ports/sysutils/u-boot-master/Makefile
Index: /usr/ports/sysutils/u-boot-master/Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- /usr/ports/sysutils/u-boot-master/Makefile	(revision 476026)
+++ /usr/ports/sysutils/u-boot-master/Makefile	(working copy)
@@ -21,6 +21,7 @@
 		dtc>=3D1.4.1:sysutils/dtc \
 		mkimage:sysutils/u-boot-tools
 BUILD_DEPENDS+=3D	${COMPILER}:devel/${COMPILER}
+BUILD_DEPENDS+=3D	objdump:devel/binutils
=20
 USES=3D		bison gmake python:2.7,build shebangfix tar:bz2
 BINARY_ALIAS=3D	bison=3D${LOCALBASE}/bin/bison =
dtc=3D${LOCALBASE}/bin/dtc sed=3Dgsed swig=3Dswig3.0

in order for sysutils/u-boot-pine64 to build in my context that
is based on WITHOUT_BINUTILS .

Interestingly: before this change the following built fine:

sysutils/u-boot-rpi3 | u-boot-rpi3-2018.07_1
sysutils/u-boot-rpi2 | u-boot-rpi2-2018.07_1
sysutils/u-boot-sinovoip-bpi-m3 | u-boot-sinovoip-bpi-m3-2018.07_1

but sysutils/u-boot-pine64 did not.

The use of some builder environment tool(s) is specific
to u-boot-pine64 (of the 4 u-boot-* 's).

I've not isolated the sysutils/u-boot-pine64 code that
puts some builder environment tool(s) to use. So I've
not formally shown root cause for this case.

I submitted https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D230288
for this issue (before I showed BUILD_DEPENDS was at least
a workaround).

=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CEA44C06-9CBE-40A8-A99A-DEE02DF58703>