Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Apr 2015 19:40:00 -0700
From:      Mark Millard <markmi@dsl-only.net>
To:        freebsd-toolchain@freebsd.org
Cc:        FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>
Subject:   Re: Shorter version: -m elf32ppc_fbsd (and elf_i386_fbsd ?) vs. -Wl, -m, elf32ppc_fbsd problems (11.0-CURRENT and 10.1-STABLE)
Message-ID:  <FB904F08-081F-4905-B46B-A53F117CA5BF@dsl-only.net>
In-Reply-To: <0D8F0A9A-593E-4FEE-8F01-20799DE946B2@dsl-only.net>
References:  <0D8F0A9A-593E-4FEE-8F01-20799DE946B2@dsl-only.net>

next in thread | previous in thread | raw e-mail | index | archive | help
I now see one place where "-Wl,-m,elf32ppc_fbsd" type of notation in =
LDFLAGS would not be handled if it ended up involved:

share/mk/sys.mk:_LDFLAGS        =3D       ${LDFLAGS:S/-Wl,//g}    # =
strip -Wl, for LD

This notation does not deal with turning the extra comma back into a =
space.

=3D=3D=3D
Mark Millard
markmi at dsl-only.net

On 2015-Apr-9, at 06:56 PM, Mark Millard <markmi at dsl-only.net> wrote:

=46rom share/mk/bsd.README :

LDFLAGS         Additional loader flags. Passed to the loader via CC,
               since that's used to link programs as well, so loader
               specific flags need to be prefixed with -Wl, to work.

But the following 3 powerpc (non-64) examples do not use the -Wl, =
notation:

> LDFLAGS+=3D       -m elf32ppc_fbsd
> /usr/src/sys/boot/ofw/Makefile.inc


> LDFLAGS+=3D       -m elf32ppc_fbsd
> /usr/src/sys/boot/uboot/Makefile.inc


> LDFLAGS+=3D       -m elf32ppc_fbsd
> /usr/src/sys/boot/powerpc/Makefile.inc

In fact I get errors such as (for that last one when using powerpc64-gcc =
via powerpc64-xtoolchain-gcc, executed on a powerpc64):

> powerpc64-portbld-freebsd11.0-gcc: error: elf32ppc_fbsd: No such file =
or directory
> powerpc64-portbld-freebsd11.0-gcc: error: elf32ppc_fbsd: No such file =
or directory
> powerpc64-portbld-freebsd11.0-gcc: error: unrecognized command line =
option '-m'
> powerpc64-portbld-freebsd11.0-gcc: error: unrecognized command line =
option '-m'
>=20
> *** [boot1.elf] Error code 1
>=20
> make[6]: stopped in /usr/srcC/sys/boot/powerpc/boot1.chrp
> 1 error

I do not know if the space between -m and elf... creates a problem for =
-Wl, use or not. I would guess that

-Wl,-m,elf32pcc_fbsd

is the proper notation for putting the space through to the ld variant =
used. But I=E2=80=99m not to the point of testing the behavior of that =
yet.



i386 seems to have a similar example, although I=E2=80=99m not using =
such a FreeBSD environment.

> LD_FLAGS+=3D      -m elf_i386_fbsd
> /usr/src/sys/boot/i386/Makefile.inc



(This note is shorter in part because figured out more context than I =
had last time.)

=3D=3D=3D
Mark Millard
markmi at dsl-only.net





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?FB904F08-081F-4905-B46B-A53F117CA5BF>