diff options
Diffstat (limited to 'sys-apps/help2man/files/help2man-1.48.5-cygwin.patch')
-rw-r--r-- | sys-apps/help2man/files/help2man-1.48.5-cygwin.patch | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/sys-apps/help2man/files/help2man-1.48.5-cygwin.patch b/sys-apps/help2man/files/help2man-1.48.5-cygwin.patch deleted file mode 100644 index aa75d10e38..0000000000 --- a/sys-apps/help2man/files/help2man-1.48.5-cygwin.patch +++ /dev/null @@ -1,167 +0,0 @@ -https://cygwin.com/git-cygwin-packages/?p=git/cygwin-packages/help2man.git;a=blob;f=help2man-preload-intl.patch;h=2fbc34bbc6bc7a36414257a29fee13944f5c087c;hb=b47c3b0de257e3cda4455e16e196e629c69d28e7 - -LD_PRELOAD by itself only works with Cygwin builtin functions, but -textdomain() and friends come from libintl. In order to override -those functions, we have to "replace" cygintl-?.dll since functions are -bound to a DLL name at link time. Our replacement will be used since -it is loaded first by LD_PRELOAD. - -But as we are making this *the* libintl, we need to provide -pass-throughs for the other functions which we're not overriding, -otherwise Locale::gettext won't load (not to mention the program -that we're trying to help2man). - ---- origsrc/help2man-1.48.5/Makefile.in 2020-03-15 04:52:00.000000000 -0600 -+++ src/help2man-1.48.5/Makefile.in 2021-09-07 03:10:00.000000000 -0600 -@@ -76,7 +76,8 @@ install_base: - - install_preload: preload - $(MKINSTALLDIRS) $(DESTDIR)$(pkglibdir) -- $(INSTALL_PROGRAM) $(preload).so $(DESTDIR)$(pkglibdir) -+ $(INSTALL_PROGRAM) lib/cygintl-8.dll $(DESTDIR)$(pkglibdir) -+ ln -sf cygintl-8.dll $(DESTDIR)$(pkglibdir)/$(preload).so - - install_l10n: msg_l10n man_l10n info_l10n - set -e; \ -@@ -145,7 +146,9 @@ $(target).h2m: $(srcdir)/$(target).h2m.PL - - preload: $(preload).so - $(preload).so: $(srcdir)/$(preload).c -- $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ -fPIC -shared $? $(LIBS) -+ mkdir -p lib -+ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o lib/cygintl-8.dll -shared $? $(LIBS) -+ ln -sf lib/cygintl-8.dll $@ - - man: $(target).1 - $(target).1: $(srcdir)/$(target).PL $(srcdir)/$(target).h2m.PL ---- origsrc/help2man-1.48.5/bindtextdomain.c 2009-11-13 00:01:34.000000000 -0600 -+++ src/help2man-1.48.5/bindtextdomain.c 2011-12-29 00:24:33.608078600 -0600 -@@ -36,12 +36,34 @@ static char *(*r_textdomain)(char const *) = 0; - static char *(*r_bindtextdomain)(char const *, char const *) = 0; - static char *(*r_bind_textdomain_codeset)(char const *, char const *) = 0; - -+#ifdef __CYGWIN__ -+static void *RTLD_NEXT = 0; -+static char *(*r_gettext)(const char *) = 0; -+static char *(*r_dgettext)(const char *, const char *) = 0; -+static char *(*r_dcgettext)(const char *, const char *, int) = 0; -+static char *(*r_ngettext)(const char *, const char *, unsigned long int) = 0; -+static char *(*r_dngettext)(const char *, const char *, const char *, -+ unsigned long int) = 0; -+static char *(*r_dcngettext)(const char *, const char *, const char *, -+ unsigned long int, int) = 0; -+static char *(*r_setlocale)(int, const char *) = 0; -+ -+#define SYM(sym) libintl_ ## sym -+#else -+#define SYM(sym) sym -+#endif -+ - void setup() - { - static int done = 0; - if (done++) - return; - -+#ifdef __CYGWIN__ -+ if (!(RTLD_NEXT = dlopen("/usr/bin/cygintl-8.dll", RTLD_LAZY))) -+ die("libintl8 not found"); -+#endif -+ - if (!(e_textdomain = getenv("TEXTDOMAIN"))) - die("TEXTDOMAIN not set"); - -@@ -57,9 +79,19 @@ void setup() - if (!(r_bind_textdomain_codeset = dlsym(RTLD_NEXT, - "bind_textdomain_codeset"))) - die("can't find symbol \"bind_textdomain_codeset\""); -+ -+#ifdef __CYGWIN__ -+ r_gettext = dlsym(RTLD_NEXT, "libintl_gettext"); -+ r_dgettext = dlsym(RTLD_NEXT, "libintl_dgettext"); -+ r_dcgettext = dlsym(RTLD_NEXT, "libintl_dcgettext"); -+ r_ngettext = dlsym(RTLD_NEXT, "libintl_ngettext"); -+ r_dngettext = dlsym(RTLD_NEXT, "libintl_dngettext"); -+ r_dcngettext = dlsym(RTLD_NEXT, "libintl_dcngettext"); -+ r_setlocale = dlsym(RTLD_NEXT, "libintl_setlocale"); -+#endif - } - --char *textdomain(char const *domainname) -+char *SYM(textdomain)(char const *domainname) - { - char *r; - setup(); -@@ -70,7 +102,7 @@ char *textdomain(char const *domainname) - return r; - } - --char *bindtextdomain(char const *domainname, char const *dirname) -+char *SYM(bindtextdomain)(char const *domainname, char const *dirname) - { - char const *dir = dirname; - setup(); -@@ -80,7 +112,7 @@ char *bindtextdomain(char const *domainname, - return r_bindtextdomain(domainname, dir); - } - --char *bind_textdomain_codeset(char const *domainname, char const *codeset) -+char *SYM(bind_textdomain_codeset)(char const *domainname, char const *codeset) - { - char *r; - setup(); -@@ -90,3 +122,54 @@ char *bind_textdomain_codeset(char const - - return r; - } -+ -+#ifdef __CYGWIN__ -+ -+char *libintl_gettext(const char *msgid) -+{ -+ setup(); -+ return r_gettext(msgid); -+} -+ -+char *libintl_dgettext (const char *domainname, const char *msgid) -+{ -+ setup(); -+ return r_dgettext(domainname, msgid); -+} -+ -+char *libintl_dcgettext (const char *domainname, const char *msgid, -+ int category) -+{ -+ setup(); -+ return r_dcgettext (domainname, msgid, category); -+} -+ -+char *libintl_ngettext (const char *msgid1, const char *msgid2, -+ unsigned long int n) -+{ -+ setup(); -+ return r_ngettext (msgid1, msgid2, n); -+} -+ -+char *libintl_dngettext (const char *domainname, const char *msgid1, -+ const char *msgid2, unsigned long int n) -+{ -+ setup(); -+ return r_dngettext (domainname, msgid1, msgid2, n); -+} -+ -+char *libintl_dcngettext (const char *domainname, -+ const char *msgid1, const char *msgid2, -+ unsigned long int n, int category) -+{ -+ setup(); -+ return r_dcngettext (domainname, msgid1, msgid2, n, category); -+} -+ -+char *libintl_setlocale (int i, const char *s) -+{ -+ setup(); -+ return r_setlocale (i, s); -+} -+ -+#endif |