tech-pkg archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: editors/emacs29 and gcc14-libjit default option breakage
On Tue, Apr 29, 2025 at 01:13:18PM +0200, Dr. Thomas Orgis wrote:
> For now we migh have to at least default the option to off until someone
> figured out how this works properly on Linux systems.
I've just changed the option to default to off except on NetBSD.
> > It doesn't seem to matter - on my NetBSD system, the base system has
> > gcc12, and the emacs package uses libgcc14-jit without problems.
>
> I do not see a guarantee for that, anywhere.
True. It just works for me.
> The configure-time option --enable-host-shared is needed when
> building the jit in order to get position-independent code.
> This will slow down the regular compiler by a few percent.
> Hence when packaging gcc with libgccjit, please configure and
> build twice:
>
> once without --enable-host-shared for most languages, and
>
> once with --enable-host-shared for the jit
>
> Did you intentionally decide against --enable-host-shared?
I'm not sure what you are talking about.
/usr/pkgsrc/lang/gcc14-libjit> grep host *
Makefile:CONFIGURE_ARGS+= --enable-host-shared
> That superficially seems to work, but I feel uneasy about answering the
> question which gcc is actually used as backend for libgccjit now. I
> _guess_ a libgccjit built along with a full gcc install would not need
> LIBRARY_PATH and use its install prefix, and the gcc objects there.
> Right now I have no idea how this works for you on NetBSD. Can you tell
> me where your crtbeginS.o is and how it is located?
I do have the gcc14 package installed, so
/usr/pkgsrc/lang/gcc14-libjit> pkg_info -L gcc14 | grep crt
/usr/pkg/gcc14/lib/gcc/x86_64--netbsd/14.2.0/crtbegin.o
/usr/pkg/gcc14/lib/gcc/x86_64--netbsd/14.2.0/crtbeginS.o
/usr/pkg/gcc14/lib/gcc/x86_64--netbsd/14.2.0/crtbeginT.o
/usr/pkg/gcc14/lib/gcc/x86_64--netbsd/14.2.0/crtend.o
/usr/pkg/gcc14/lib/gcc/x86_64--netbsd/14.2.0/crtendS.o
but I don't have it installed on a second system, and they are not a
build requirement for the emacs package, so I don't think that these
are necessary.
And of course there are the files in /usr/lib:
/usr/lib/crt0.o
/usr/lib/crtbegin.o
/usr/lib/crtbeginS.o
/usr/lib/crtbeginT.o
/usr/lib/crtend.o
/usr/lib/crtendS.o
/usr/lib/crti.o
/usr/lib/crtn.o
The conftest command line when building emacs29:
cc -o conftest -O2 -g -fstack-clash-protection -I/usr/include -I/usr/pkg/include -I/usr/pkg/include/freetype2 -I/usr/pkg/include/libxml2 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/harfbuzz -I/usr/pkg/include/libdrm -I/usr/pkg/lib/pkgconfig/../../include/librsvg-2.0 -I/usr/pkg/include/cairo -I/usr/pkg/include -I/usr/pkg/include/gdk-pixbuf-2.0 -I/usr/pkg/include/libxml2 -I/usr/pkg/include/pango-1.0 -I/usr/pkg/include/fribidi -D_POSIX_THREAD_SAFE_FUNCTIONS -D_REENTRANT -I/usr/pkg/include/pixman-1 -I/usr/pkg/include/harfbuzz -I/usr/pkg/include/freetype2 -I/usr/pkg/include/libpng16 -pthread -I/usr/pkg/include/glib-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include -I/usr/pkg/include/webp -I/usr/pkg/include/cairo -I/usr/pkg/include -I/usr/pkg/include/freetype2 -I/usr/pkg/include/libpng16 -D_POSIX_THREAD_SAFE_FUNCTIONS -D_REENTRANT -I/usr/pkg/include/pixman-1 -g -DTERMINFO -I/usr/include -I/usr/pkg/include -I/usr/pkg/include/freetype2 -I/usr/pkg/include/libxml2 -I/usr/pkg/include/glib-2.0 -I/usr/pkg/include/gio-unix-2.0 -I/usr/pkg/lib/glib-2.0/include -I/usr/pkg/include/harfbuzz -I/usr/pkg/include/libdrm -Wl,-R/usr/pkg/gcc14/lib -Wl,-zrelro -Wl,-znow -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib conftest.c -lgccjit -lsqlite3 -lX11 -Wl,-R/usr/pkg/lib -L/usr/pkg/lib -lcairo
doesn't seem to refer to any particular location.
I must confess you provided a lot of details, too many for me to read
and parse all of it. If you want further information from my NetBSD
installation, please let me know.
Thanks,
Thomas
Home |
Main Index |
Thread Index |
Old Index