Message ID | 20220830124423.164957-1-yann.morin.1998@free.fr |
---|---|
State | Accepted |
Headers | show |
Series | package/ncurses: drop our custom host build commands | expand |
On Tue, 30 Aug 2022 14:44:23 +0200 "Yann E. MORIN" <yann.morin.1998@free.fr> wrote: > Commit bf446513e7e7 (ncurses: fix hanging installation due to old > version of tic) introduced the build of the host tic, to be used by the > target ncurses. That commit purportedly built a static tic, but that is > (at least now) wrong: there is nothing that makes the build of tic > static. > > Initially, host-ncurses was configured with --without-shared, but that > only drives whether to generate shared libs or not, it does not drive > whether to do a shared or static link of executables. > > And in any case, in af23d762e51b (ncurses: enable shared library build > on the host) we explicitly stopped requesting the build of a static > library, to instead require the build of a shared library. > > So, we never had a statically linked tic ever. > > Furthermore, we override the _BUKLLD_CMDS, but we do not provide any > _INSTALL_CMDS. As a consequence, the full ncurses is installed, not just > tic. And since we override the _BUILD_CMDS, the libraries are not built, > so they get built during the install step. > > And we do indeed need the libraries (host-gettext needs them), and not > just tic. > > So, just drop our custom _BUILD_CMDS and just build the whole package > with the default settings. We keep the explicit use of --with-shared, > as this is not the standard flag (--enable-shared) and it is not obvious > what the default is. > > The set of files installed before and after this change is exactly the > same, and tic still is an "ELF 64-bit LSB shared object" with a RUNPATH > that still correctly points to $(HOST_DIR)/lib > > To be noted: there is no regressin in build time either, since we were > already building everything anyway. > > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> > --- > package/ncurses/ncurses.mk | 10 ---------- > 1 file changed, 10 deletions(-) Applied to master, thanks. Thomas
>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes: > Commit bf446513e7e7 (ncurses: fix hanging installation due to old > version of tic) introduced the build of the host tic, to be used by the > target ncurses. That commit purportedly built a static tic, but that is > (at least now) wrong: there is nothing that makes the build of tic > static. > Initially, host-ncurses was configured with --without-shared, but that > only drives whether to generate shared libs or not, it does not drive > whether to do a shared or static link of executables. > And in any case, in af23d762e51b (ncurses: enable shared library build > on the host) we explicitly stopped requesting the build of a static > library, to instead require the build of a shared library. > So, we never had a statically linked tic ever. > Furthermore, we override the _BUKLLD_CMDS, but we do not provide any > _INSTALL_CMDS. As a consequence, the full ncurses is installed, not just > tic. And since we override the _BUILD_CMDS, the libraries are not built, > so they get built during the install step. > And we do indeed need the libraries (host-gettext needs them), and not > just tic. > So, just drop our custom _BUILD_CMDS and just build the whole package > with the default settings. We keep the explicit use of --with-shared, > as this is not the standard flag (--enable-shared) and it is not obvious > what the default is. > The set of files installed before and after this change is exactly the > same, and tic still is an "ELF 64-bit LSB shared object" with a RUNPATH > that still correctly points to $(HOST_DIR)/lib > To be noted: there is no regressin in build time either, since we were > already building everything anyway. > Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> Committed to 2022.02.x, 2022.05.x and 2022.08.x, thanks.
diff --git a/package/ncurses/ncurses.mk b/package/ncurses/ncurses.mk index 5d9c6bb0dd..2881ca1308 100644 --- a/package/ncurses/ncurses.mk +++ b/package/ncurses/ncurses.mk @@ -184,16 +184,6 @@ define NCURSES_TARGET_CLEANUP_TERMINFO endef NCURSES_POST_INSTALL_TARGET_HOOKS += NCURSES_TARGET_CLEANUP_TERMINFO -# -# On systems with an older version of tic, the installation of ncurses hangs -# forever. To resolve the problem, build a static version of tic on host -# ourselves, and use that during installation. -# -define HOST_NCURSES_BUILD_CMDS - $(HOST_MAKE_ENV) $(MAKE1) -C $(@D) sources - $(HOST_MAKE_ENV) $(MAKE) -C $(@D)/progs tic -endef - HOST_NCURSES_CONF_ENV = \ ac_cv_path_LDCONFIG=""
Commit bf446513e7e7 (ncurses: fix hanging installation due to old version of tic) introduced the build of the host tic, to be used by the target ncurses. That commit purportedly built a static tic, but that is (at least now) wrong: there is nothing that makes the build of tic static. Initially, host-ncurses was configured with --without-shared, but that only drives whether to generate shared libs or not, it does not drive whether to do a shared or static link of executables. And in any case, in af23d762e51b (ncurses: enable shared library build on the host) we explicitly stopped requesting the build of a static library, to instead require the build of a shared library. So, we never had a statically linked tic ever. Furthermore, we override the _BUKLLD_CMDS, but we do not provide any _INSTALL_CMDS. As a consequence, the full ncurses is installed, not just tic. And since we override the _BUILD_CMDS, the libraries are not built, so they get built during the install step. And we do indeed need the libraries (host-gettext needs them), and not just tic. So, just drop our custom _BUILD_CMDS and just build the whole package with the default settings. We keep the explicit use of --with-shared, as this is not the standard flag (--enable-shared) and it is not obvious what the default is. The set of files installed before and after this change is exactly the same, and tic still is an "ELF 64-bit LSB shared object" with a RUNPATH that still correctly points to $(HOST_DIR)/lib To be noted: there is no regressin in build time either, since we were already building everything anyway. Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> --- package/ncurses/ncurses.mk | 10 ---------- 1 file changed, 10 deletions(-)