Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Aug 2018 15:08:50 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        Gerald Pfeifer <gerald@pfeifer.com>, mat@FreeBSD.org, FreeBSD Ports <freebsd-ports@freebsd.org>, Bryan Drewery <bdrewery@FreeBSD.org>, Ed Maste <emaste@freebsd.org>
Subject:   Re: Removing objdump breaks GCC configure
Message-ID:  <0F5EA96D-7C2E-403C-A8D0-530D2EA4B682@yahoo.com>
In-Reply-To: <cf0f412b-5ee6-6543-88f8-fe05c0cd9885@FreeBSD.org>
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>

next in thread | previous in thread | raw e-mail | index | archive | help


On 2018-Aug-1, at 1:29 PM, John Baldwin <jhb at FreeBSD.org> wrote:

> 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.

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.

(I may have missed other builder-binutil tool references but know
objdump for sure.)

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.

(I'm not sure if the normal package builders are omitting system
binutils yet or if they might always have devel/binutils installed.)

>> 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.

My guess is that only ports with cross-build abilities might have the
"some builder binutils tool(s) needed" issue.


=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net <http://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?0F5EA96D-7C2E-403C-A8D0-530D2EA4B682>