[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: scratch/igc 50f3a9309d8 1/3: scan_stack with __builtin_unwind_init
From: |
Gerd Möllmann |
Subject: |
Re: scratch/igc 50f3a9309d8 1/3: scan_stack with __builtin_unwind_init |
Date: |
Sat, 20 Jul 2024 10:54:28 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Gerd Möllmann <gerd.moellmann@gmail.com> writes:
> Pip Cet <pipcet@protonmail.com> writes:
>
>> That assumes we're scanning the current thread, right? It appears to break
>>
>> (make-thread (lambda () (igc-collect)))
>
> Shit, yes :-(. I'll revert that.
>
>> here...
>>
>> By the way, I'm seeing weird errors when I compile with clang and
>> -flto for Android. Can you check whether Apple clang maybe enables
>> -flto for -O?
>
> Hard to tell. Any idea how I could check that?
Judging from the man page, -flto is probably not the default.
-flto, -flto=full, -flto=thin, -emit-llvm
Generate output files in LLVM formats, suitable for link time
optimization. When used with -S this generates LLVM
intermediate language assembly files, otherwise this generates
LLVM bitcode format object files (which may be passed to the
linker depending on the stage selection options).
The default for -flto is "full", in which the LLVM bitcode is
suitable for monolithic Link Time Optimization (LTO), where the
linker merges all such modules into a single combined module for
optimization. With "thin", ThinLTO compilation is invoked
instead.
NOTE:
On Darwin, when using -flto along with -g and compiling and
linking in separate steps, you also need to pass
-Wl,-object_path_lto,<lto-filename>.o at the linking step to
instruct the ld64 linker not to delete the temporary object
file generated during Link Time Optimization (this flag is
automatically passed to the linker by Clang if compilation
and linking are done in a single step). This allows debugging
the executable as well as generating the .dSYM bundle using
dsymutil(1).