* Re: scratch/igc 50f3a9309d8 1/3: scan_stack with __builtin_unwind_init
[not found] ` <20240720074130.5C19DC1FB72@vcs2.savannah.gnu.org>
@ 2024-07-20 8:06 ` Pip Cet
2024-07-20 8:46 ` Gerd Möllmann
0 siblings, 1 reply; 3+ messages in thread
From: Pip Cet @ 2024-07-20 8:06 UTC (permalink / raw)
To: Gerd Moellmann; +Cc: Emacs Devel
On Saturday, July 20th, 2024 at 07:41, Gerd Moellmann <gerd@gnu.org> wrote:
> branch: scratch/igc
> commit 50f3a9309d80c46c4d0b0b362ad65ef509c4d8ad
> Author: Gerd Möllmann gerd@gnu.org
>
> Commit: Gerd Möllmann gerd@gnu.org
>
>
> scan_stack with __builtin_unwind_init
> ---
> src/igc.c | 20 +++++++++++++++++++-
> 1 file changed, 19 insertions(+), 1 deletion(-)
>
> diff --git a/src/igc.c b/src/igc.c
> index 9298cae66db..e63b796997a 100644
> --- a/src/igc.c
> +++ b/src/igc.c
> @@ -1356,6 +1356,24 @@ scan_ambig (mps_ss_t ss, void *start, void *end, void *closure)
> return MPS_RES_OK;
> }
>
> +static mps_res_t
> +scan_stack (mps_ss_t ss, void *start, void *end, void *closure)
> +{
> + MPS_SCAN_BEGIN (ss)
> + {
> +#ifdef HAVE___BUILTIN_UNWIND_INIT
> + __builtin_unwind_init ();
> + asm ("");
> + void *p;
> + start = min (start, (void *) &p);
> + end = max (end, (void *) &p);
That assumes we're scanning the current thread, right? It appears to break
(make-thread (lambda () (igc-collect)))
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?
Pip
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: scratch/igc 50f3a9309d8 1/3: scan_stack with __builtin_unwind_init
2024-07-20 8:06 ` scratch/igc 50f3a9309d8 1/3: scan_stack with __builtin_unwind_init Pip Cet
@ 2024-07-20 8:46 ` Gerd Möllmann
2024-07-20 8:54 ` Gerd Möllmann
0 siblings, 1 reply; 3+ messages in thread
From: Gerd Möllmann @ 2024-07-20 8:46 UTC (permalink / raw)
To: Pip Cet; +Cc: Gerd Moellmann, Emacs Devel
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?
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: scratch/igc 50f3a9309d8 1/3: scan_stack with __builtin_unwind_init
2024-07-20 8:46 ` Gerd Möllmann
@ 2024-07-20 8:54 ` Gerd Möllmann
0 siblings, 0 replies; 3+ messages in thread
From: Gerd Möllmann @ 2024-07-20 8:54 UTC (permalink / raw)
To: Pip Cet; +Cc: Gerd Moellmann, Emacs Devel
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).
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-07-20 8:54 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <172146128986.990.283901147449966365@vcs2.savannah.gnu.org>
[not found] ` <20240720074130.5C19DC1FB72@vcs2.savannah.gnu.org>
2024-07-20 8:06 ` scratch/igc 50f3a9309d8 1/3: scan_stack with __builtin_unwind_init Pip Cet
2024-07-20 8:46 ` Gerd Möllmann
2024-07-20 8:54 ` Gerd Möllmann
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.