New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 860833 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 10
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug
Build-Toolchain



Sign in to add a comment

Linker failed with unrecognized option '--fix-cortex-a53-843419'

Project Member Reported by jclinton@chromium.org, Jul 6

Issue description

Toolchain team, I think this might be related to a toolchain change. Can someone take a look?
Seems like a bad CL in CQ (Maybe https://chromium-review.googlesource.com/c/chromiumos/overlays/portage-stable/+/1106817 ? .
Doesn't look like a ToT issue.

libintl-perl-1.200.0-r1: x86_64-pc-linux-gnu-clang  -shared -O2 -pipe -Wl,-O2 -Wl,--as-needed -Wl,-O2 -Wl,--as-needed gettext_xs.o -Wl,-O1 -Wl,-O2 -Wl,--as-needed -Wl,--fix-cortex-a53-843419 -o ../blib/arch/auto/Locale/gettext_xs/gettext_xs.so 	\
libintl-perl-1.200.0-r1:      	\
libintl-perl-1.200.0-r1:   
libintl-perl-1.200.0-r1: /usr/x86_64-pc-linux-gnu/binutils-bin/2.27.0/ld.bfd.real: unrecognized option '--fix-cortex-a53-843419'
libintl-perl-1.200.0-r1: /usr/x86_64-pc-linux-gnu/binutils-bin/2.27.0/ld.bfd.real: use the --help option for usage information
libintl-perl-1.200.0-r1: clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

Failing package is libintl-perl which is not built in elm-release (https://cros-goldeneye.corp.google.com/chromeos/healthmonitoring/buildDetails?buildbucketId=8941727700933693104, https://logs.chromium.org/v/?s=chromeos%2Fbb%2Fchromeos%2Felm-paladin%2F6681%2F%2B%2Frecipes%2Fsteps%2FBuildPackages%2F0%2Fstdout)

This package is forcing use of bfd linker somehow which does not support this option. The package should be fixed to not force the linker.
Another package started breaking at the same time with the same error, though:

File-Spec-3.400.0: cp Cwd.pm blib/lib/Cwd.pm
File-Spec-3.400.0: x86_64-pc-linux-gnu-clang -c   -fno-strict-aliasing -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2 -pipe   -DVERSION=\"3.40\" -DXS_VERSION=\"3.40\" -fPIC "-I/usr/lib64/perl5/5.24.0/x86_64-linux/CORE"   Cwd.c
File-Spec-3.400.0: rm -f blib/arch/auto/Cwd/Cwd.so
File-Spec-3.400.0: x86_64-pc-linux-gnu-clang  -shared -O2 -pipe -Wl,-O2 -Wl,--as-needed -Wl,-O2 -Wl,--as-needed Cwd.o -Wl,-O1 -Wl,-O2 -Wl,--as-needed -Wl,--fix-cortex-a53-843419 -o blib/arch/auto/Cwd/Cwd.so 	\
File-Spec-3.400.0:      	\
File-Spec-3.400.0:   
File-Spec-3.400.0: /usr/x86_64-pc-linux-gnu/binutils-bin/2.27.0/ld.bfd.real: unrecognized option '--fix-cortex-a53-843419'
File-Spec-3.400.0: /usr/x86_64-pc-linux-gnu/binutils-bin/2.27.0/ld.bfd.real: use the --help option for usage information
File-Spec-3.400.0: clang-7: error: linker command failed with exit code 1 (use -v to see invocation)

I'm pretty certain that this is not texi2html.

File-Spec is also not built in elm-release. So this package also must be getting pulled in as some direct or indirect  dependency.
elm-release is the ToT I am referring to that doesn't have these packages.
elm-paladin can not be ToT since it has unsubmitted changes which means these packages are getting pulled in via some CL in CQ.

The current elm-paladin run is not building these packages 
https://luci-milo.appspot.com/buildbot/chromeos/elm-paladin/6682
Build_packages log -> https://logs.chromium.org/v/?s=chromeos%2Fbb%2Fchromeos%2Felm-paladin%2F6682%2F%2B%2Frecipes%2Fsteps%2FBuildPackages%2F0%2Fstdout. It now does not have these packages (File-Spec, libintl-perl) in the list of packages getting built.

Probably the CL causing the problem was dropped out of this CQ run?
The flag -Wl,--fix-cortex-a53-843419 should only be applied to ARM boards, why is it used by the host compiler?
Labels: -Pri-0 Pri-2
Owner: jclinton@chromium.org
Status: Assigned (was: Untriaged)
Summary: Linker failed with unrecognized option '--fix-cortex-a53-843419' (was: Linker broken at ToT with unrecognized option '--fix-cortex-a53-843419')
A release and CQ run have both run at ToT and passed since the first error. However, neither of the CL's that were in the failing run and not in the passing run could be the root cause of this. I'm lowering priority, retitling because this isn't a ToT breakage, and will investigate further on Monday. This is a mystery.
Pretty-sure that it is the combination of these 2 CLs :
https://chromium-review.googlesource.com/c/chromiumos/overlays/portage-stable/+/1106817
https://chromium-review.googlesource.com/c/chromiumos/overlays/portage-stable/+/1115501

I launched elm-paladin tryjob with these 2 CLs and it failed.
https://cros-goldeneye.corp.google.com/chromeos/healthmonitoring/buildDetails?buildbucketId=8941611365220816576

Underlying cause is host compiler is invoked with target build flags. I don't know about these packages and perl build system to root cause why the host compiler is invoked.
Owner: saklein@chromium.org
Ok, I dug into it a bit.
Apparently, texi2html package is not need for targets and it is marked as provided.

https://cs.corp.google.com/chromeos_public/src/third_party/chromiumos-overlay/profiles/targets/chromeos/package.provided?l=29

So adding app-text/texi2html-5.0 to this list should fix the problem since the unnecessary dependencies won't get pulled in for target builds.
Status: Started (was: Assigned)
That seems to have fixed it. Thanks so much for finding that!

To document, here's the elm-paladin tryjob with the 4 CLs that's at time of writing has at least made it past BuildPackages.

https://cros-goldeneye.corp.google.com/chromeos/healthmonitoring/buildDetails?buildbucketId=8941461851152611200
it doesn't apply currently since the real fix is to package.provided these, but perl packages are really bad at cross-compiling to the point where we don't support it.  so if you're seeing perl packages being built for a board, something is broken even before that.
I definitely think package.provided would be worth a mention on the package upgrade guide, probably could have prevented this whole headache in the first place. I haven't looked at updating the documentation at all yet so I'd need someone to point me to the instructions for that, but I'd be happy to do it. About all I know about it right now is what I've learned about it here and the comment at the top of the file, though.
Status: Fixed (was: Started)

Sign in to add a comment