[roll] Roll fuchsia Reland "[ffx] link version into binary last"

This reverts commit ed6f9722f2a4adee2f2a2ad62f40ad44103baf8a.

Original issue identified by olivernewman, fixed by bbosan:
https://chat.google.com/room/AAAABFiUm4o/5G9geTC8c4o

Failure that caused revert:
https://logs.chromium.org/logs/fuchsia/buildbucket/cr-buildbucket/8825117432091675473/+/u/failures/Mac-_2_/attempt_0__fail_/failed:_host_x64_obj_src_developer_ffx_ffx-e2e-without-target.sh/stdout-and-stderr.txt

Symptom:
host_x64/obj/src/developer/ffx/ffx-e2e-without-target.sh: line 3: host_x64/ffx: Permission denied

Underlying issue:
src/developer/ffx/lib/version/build/macos-apply-ffx-version.py created
output stamped ffx binary without execute permissions.

Fix: chmood ug+x

Original change's description:
> Revert "[ffx] link version into binary last"
>
> This reverts commit bf448dc51867a3461fa2f858166cf94d5a48c3f6.
>
> MULTIPLY: ffx-e2e-without-target
>
> Reason for revert: Possibly broke tree
>
> Original change's description:
> > [ffx] link version into binary last
> >
> > Instead of having most ffx builds depending upon repository state,
> > triggering lengthy build cache invalidations any time a new commit is
> > being built, link the version information into the binary with objcopy
> > section repalcement right at the end of the build pipeline.
> >
> > Workarounds for 91330 are introduced for macOS, where a raw byte
> > replacement strategy is used instead of a parse and replace strategy.
> > This can be removed when llvm-objcopy supports mach-o section updates.
> >
> > Original-Bug: 91330
> > Original-Fixed: 82887
> > Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/621905
>
> Original-Bug: 91330
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/631449

Original-Bug: 91330
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/632903
Original-Revision: 176cd5060d30a8d184552ede283b6cb4b33f388b
GitOrigin-RevId: 5ada23242f6bfcd8241d20471676e563270aaca0
Change-Id: I60ab3329aba1f9941bc42a67dd091a9357b80fc8
1 file changed
tree: 3b269cdf89d2e9d36877332f3706e5c015a50649
  1. infra/
  2. third_party/
  3. cts
  4. firmware
  5. flower
  6. jiri.lock
  7. minimal
  8. prebuilts
  9. README.md
  10. stem
  11. test_durations
  12. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.