Iain Sandoe wrote: > Yes ( > # We can use an in-tree build of libintl. > if test -f ifelse([$1],,[../gettext-runtime],[$1])/uninstalled-config.sh; > then > > relative_builddir='ifelse([$1],,[${top_builddir}/..],[$1]/..)/gettext-runtime' > . ifelse([$1],,[../gettext-runtime],[$1])/uninstalled-config.sh > elif test -f ifelse([$1],,[../intl],[$1])/config.intl; then > . ifelse([$1],,[../intl],[$1])/config.intl > fi > ) > and it works ...
Good! > … although now I see some configure warnings about not being able to access > build-aux (which I do not recall seeing with the previous hack - but that > could be just bad memory ;) ) You can get warnings if you _move_ the gettext-runtime directory so that it becomes a sibling directory of 'gcc'. You should *not* get warnings if you create a symlink, sibling of the 'gcc' directory, to the gettext-20220620/gettext-runtime/ directory. > FWIW this following snippet would be just as broken on macOS as other noted > platforms - it would need auto-foo-provided shared lib extension - or the > equivalent to be used. > … is there any reason that all platforms with non-’so’ suffixes would not > work with that change? On macOS (with .dylib instead of .so) it would probably work. However, AIX and HP-UX will not work, because (as I understand it) if you want to have a binary, say cc1, which depends on libintl, then - the cc1 that accesses /usr/local/lib/libintl.$suffix and - the cc1 that accesses /home/user/build/gcc-snap/gettext-runtime/intl/.libs/libintl.$suffix must necessarily be different. You cannot just install the second one in public locations, because it will have the wrong shared library filename hardcoded into it. This is why on these systems, libtool has to rebuild executables during "make install". Anyway, you said that for GCC, the important case is to build libintl as a static (non-shared) library. > > There is also a GCC specific quirk, that I upstreamed into GNU gettext: > > https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=commitdiff;h=fdc2bd236a6a62b477c1fca4205df10b0e64266b > > IMHO we need to fix this ^ in GCC config - since gettext-runtime accepts > “—with-pic” we should amend the GCC configury to pass —with-pic [to GMP et. > al. as well, currently to build in-tree with host-shared, needs a manual > —with-pic on the configure too] Indeed, the option '--with-pic' (from libtool) has the same effect as '--enable-host-shared'. If you can arrange to pass '--with-pic' instead of '--enable-host-shared', I can revert the addition of the option '--enable-host-shared' in gettext-runtime/intl from two days ago. > I think that we now need to deal with the GCC-side of the configury … > > 1) add logic [like GMP et. al.] to specify an external source of the library > (when there is no-in-tree source present) Are you aware that gettext.m4 already introduces the configure options --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir ? Bruno