Page MenuHomeFreeBSD

[PowerPC] Switch powerpc32 from BFD to LLD10.
ClosedPublic

Authored by bdragon on Mar 18 2020, 3:53 AM.
Referenced Files
F81626427: D24111.id.diff
Fri, Apr 19, 4:54 AM
F81626425: D24111.id69627.diff
Fri, Apr 19, 4:54 AM
F81626420: D24111.id69905.diff
Fri, Apr 19, 4:54 AM
F81626418: D24111.id69669.diff
Fri, Apr 19, 4:54 AM
F81626417: D24111.id69906.diff
Fri, Apr 19, 4:54 AM
Unknown Object (File)
Mon, Apr 15, 1:23 PM
Unknown Object (File)
Mar 10 2024, 6:51 AM
Unknown Object (File)
Feb 28 2024, 6:55 PM

Details

Summary

Fully switch powerpc32 to LLD10.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

Also update share/man/man7/arch.7, tools/build/options/WITH_BINUTILS, and tools/build/options/WITHOUT_BINUTILS.

This revision is now accepted and ready to land.Mar 18 2020, 5:26 PM

Addressing comments. Working on further cleaning up.

This revision now requires review to proceed.Mar 18 2020, 11:15 PM
gnu/usr.bin/binutils/Makefile
20

This also implies that the entire ld/ subdirectory can go away after this is in.

tools/build/mk/OptionalObsoleteFiles.inc
418

Someone double check this, but as far as I can tell, we want NEITHER a MK_BINUTILS nor a MK_LLD_IS_LD check at this point -- the existence of this file should be based purely on whether or not base/binutils is installed.

emaste added inline comments.
gnu/usr.bin/binutils/Makefile
20

Yep. IMO you could also do it in the same commit (because ld/ is pretty much trivial), fine with me either way.

tools/build/mk/OptionalObsoleteFiles.inc
418

I believe you are correct, paging @jhb
That said the other WITH_PORT_BASE_BINUTILS cases are in the top-level ObsoleteFiles.inc.

This revision is now accepted and ready to land.Mar 19 2020, 12:27 AM
tools/build/mk/OptionalObsoleteFiles.inc
418

Yes, this should probably move to the top-level at some point. I think it would be fine to do that separately as part of removing support for in-tree ld.bfd and perhaps not part of this change? I would also put removing ld in that change as well. They may be small, but I think it's worth splitting those up.

tools/build/mk/OptionalObsoleteFiles.inc
418

Yep, fine with me either way

bdragon edited the summary of this revision. (Show Details)
bdragon added a reviewer: jhibbits.

Reroll against latest, still tweaking things.

This revision now requires review to proceed.Mar 27 2020, 12:26 AM
stand/defs.mk
102

will take this comment back out, powerpc is lowest common denominator and should work fine even for stuff for use on book-E.

Works great for powerpcspe!

This revision is now accepted and ready to land.Mar 27 2020, 12:54 AM
This revision was automatically updated to reflect the committed changes.
arichardson added inline comments.
head/share/mk/bsd.compat.mk
59 ↗(On Diff #69906)

Shouldn't this be LD="${LD} -m elf32ppc_fbsd"? It seems like this would pass -m elf32ppc_fbsd to make and make ignores it since the directory doesn't exist?

-m directory
             Specify a directory in which to search for sys.mk and makefiles included via the <file>-style include statement.

The -m flag doesn't do much for lld since it will just set infer everything from the first .o file if not present. The only thing that the _fbsd suffix does is set the OSABI field (which might not be required since the crt files add the freebsd note section).

Currently testing a fix.

I guess it's mainly important when using CROSS_TOOLCHAIN

head/share/mk/bsd.compat.mk
59 ↗(On Diff #69906)

You're right, committed rS359373 to fix this.