Sam James (sjames) <[email protected]>) commented on the code:

> +++ gcc/jit/libgccjit.cc
> @@ -4709,0 +4712,4 @@
> +{
> +#ifdef ENABLE_LTO
> +  char lto1_path[PATH_MAX];
> +  snprintf (lto1_path, sizeof (lto1_path), "%s%s/%s/lto1",
I'm a little bit surprised to see this -- why do you need to verify you can 
find `lto1`? Is there a scenario where you had GCC built with `--enable-lto` 
(=> `ENABLE_LTO`) but `lto1` was missing (maybe broken packaging)?

> +++ gcc/jit/libgccjit.cc
> @@ -4709,0 +4712,4 @@
> +{
> +#ifdef ENABLE_LTO
> +  char lto1_path[PATH_MAX];
> +  snprintf (lto1_path, sizeof (lto1_path), "%s%s/%s/lto1",
I might be wrong here, but I was under the impression that we can just 
distribute `libgccjit.so` without the libexec stuff and it would just work 
while that would not work for gcc.
I guess we could assume that if LTO was enabled, that the lto frontend would be 
present, but since the LTO frontend is enabled by default, that could be 
error-prone.
What are your thoughts on this?

> +++ gcc/jit/libgccjit.cc
> @@ -4709,0 +4712,4 @@
> +{
> +#ifdef ENABLE_LTO
> +  char lto1_path[PATH_MAX];
> +  snprintf (lto1_path, sizeof (lto1_path), "%s%s/%s/lto1",
I hadn't thought about that (i.e. people thinking it's a standalone library). I 
think the check is reasonable if you can imagine someone trying to do that. 
Just mention that as motivation in the commit message?

(Especially for the say, "CI case", where people might assume they can just 
grab the .so and not worry about anything else, dunno.)


--
https://forge.sourceware.org/gcc/gcc-TEST/pulls/103#issuecomment-2975

Reply via email to