Skip to content

Commit

Permalink
Bug 1841902 - Patch ld64 to avoid dead-stripping rust compiler_builti…
Browse files Browse the repository at this point in the history
…ns atoms. r=firefox-build-system-reviewers,ahochheiden

Sent upstream at tpoechtrager/cctools-port#135.

Differential Revision: https://phabricator.services.mozilla.com/D182833

UltraBlame original commit: 03b2eccaf86fbc9cb989ec3d9dfce6e12e827a7e
  • Loading branch information
marco-c committed Jul 16, 2023
1 parent ef35253 commit 88ccd6a
Show file tree
Hide file tree
Showing 2 changed files with 330 additions and 0 deletions.
15 changes: 15 additions & 0 deletions taskcluster/scripts/misc/build-cctools-port.sh
Original file line number Diff line number Diff line change
Expand Up @@ -546,6 +546,21 @@ crosstools
port
cd
CROSSTOOLS_CCTOOLS_DIR
patch
-
p2
<
GECKO_PATH
/
taskcluster
/
scripts
/
misc
/
cctools
.
patch
#
Force
re
Expand Down
315 changes: 315 additions & 0 deletions taskcluster/scripts/misc/cctools.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,315 @@
diff
-
-
git
a
/
cctools
/
ld64
/
src
/
ld
/
Resolver
.
cpp
b
/
cctools
/
ld64
/
src
/
ld
/
Resolver
.
cpp
index
bfb67a3
.
.
d5b1c67
100644
-
-
-
a
/
cctools
/
ld64
/
src
/
ld
/
Resolver
.
cpp
+
+
+
b
/
cctools
/
ld64
/
src
/
ld
/
Resolver
.
cpp
-
1178
9
+
1178
10
void
Resolver
:
:
deadStripOptimize
(
bool
force
)
/
/
unset
liveness
so
markLive
(
)
will
recurse
(
const_cast
<
ld
:
:
Atom
*
>
(
atom
)
)
-
>
setLive
(
0
)
;
}
-
/
/
<
rdar
:
/
/
problem
/
49468634
>
if
doing
LTO
mark
all
libclang_rt
*
mach
-
o
atoms
as
live
since
the
backend
may
suddenly
codegen
uses
of
them
+
/
/
<
rdar
:
/
/
problem
/
49468634
>
if
doing
LTO
mark
all
libclang_rt
*
mach
-
o
atoms
as
live
since
the
backend
may
suddenly
codegen
uses
of
them
.
+
/
/
Likewise
with
rust
compiler_builtins
atoms
.
They
may
come
from
a
libcompiler_builtins
-
<
hash
>
.
a
lib
or
from
a
compiler_builtins
-
.
.
.
member
of
a
rust
static
library
.
else
if
(
_haveLLVMObjs
&
&
!
force
&
&
(
atom
-
>
contentType
(
)
!
=
ld
:
:
Atom
:
:
typeLTOtemporary
)
)
{
-
if
(
strstr
(
atom
-
>
safeFilePath
(
)
"
libclang_rt
"
)
!
=
nullptr
)
{
+
if
(
strstr
(
atom
-
>
safeFilePath
(
)
"
libclang_rt
"
)
!
=
nullptr
|
|
strstr
(
atom
-
>
safeFilePath
(
)
"
compiler_builtins
"
)
!
=
nullptr
)
{
_deadStripRoots
.
insert
(
atom
)
;
}
}

0 comments on commit 88ccd6a

Please sign in to comment.