Skip to content

Commit

Permalink
Merge pull request #494 from stilor/cygwin-fixes
Browse files Browse the repository at this point in the history
Cygwin fixes
  • Loading branch information
stilor committed Dec 6, 2016
2 parents ee4446c + 7e44983 commit da3f8c4
Show file tree
Hide file tree
Showing 18 changed files with 241 additions and 58 deletions.
1 change: 1 addition & 0 deletions kconfig/.gitignore
Expand Up @@ -5,3 +5,4 @@ conf
zconf.lex.c
zconf.hash.c
zconf.tab.c
*.exe
Expand Up @@ -63,7 +63,7 @@ diff -urN a/gettext-tools/src/Makefile.am b/gettext-tools/src/Makefile.am
+$(COLOR_SOURCE) $(OUTPUT_SOURCE) \
msgl-ascii.c msgl-iconv.c msgl-equal.c msgl-cat.c msgl-header.c msgl-english.c \
msgl-check.c file-list.c msgl-charset.c po-time.c plural-exp.c plural-eval.c \
plural-table.c quote.h sentence.h sentence.c libexpat-compat.c \
plural-table.c quote.h sentence.h sentence.c \
diff -urN a/gettext-tools/src/Makefile.in b/gettext-tools/src/Makefile.in
--- a/gettext-tools/src/Makefile.in 2015-09-11 04:05:11.000000000 +0100
+++ b/gettext-tools/src/Makefile.in 2015-10-22 00:42:26.253852000 +0100
Expand All @@ -76,12 +76,12 @@ diff -urN a/gettext-tools/src/Makefile.in b/gettext-tools/src/Makefile.in
- msgl-iconv.c msgl-equal.c msgl-cat.c msgl-header.c \
- msgl-english.c msgl-check.c file-list.c msgl-charset.c \
- po-time.c plural-exp.c plural-eval.c plural-table.c quote.h \
- sentence.h sentence.c libexpat-compat.c format.c \
- format-invalid.h format-c.c format-c-parse.h format-sh.c \
- format-python.c format-python-brace.c format-lisp.c \
- format-elisp.c format-librep.c format-scheme.c format-java.c \
- format-csharp.c format-awk.c format-pascal.c format-ycp.c \
- format-tcl.c format-perl.c format-perl-brace.c format-php.c \
- sentence.h sentence.c format.c format-invalid.h format-c.c \
- format-c-parse.h format-sh.c format-python.c \
- format-python-brace.c format-lisp.c format-elisp.c \
- format-librep.c format-scheme.c format-java.c format-csharp.c \
- format-awk.c format-pascal.c format-ycp.c format-tcl.c \
- format-perl.c format-perl-brace.c format-php.c \
- format-gcc-internal.c format-gfc-internal.c format-qt.c \
- format-qt-plural.c format-kde.c format-kde-kuit.c \
+ dir-list.c str-list.c read-catalog.c color.c \
Expand All @@ -92,7 +92,7 @@ diff -urN a/gettext-tools/src/Makefile.in b/gettext-tools/src/Makefile.in
+ msgl-ascii.c msgl-iconv.c msgl-equal.c msgl-cat.c \
+ msgl-header.c msgl-english.c msgl-check.c file-list.c \
+ msgl-charset.c po-time.c plural-exp.c plural-eval.c \
+ plural-table.c quote.h sentence.h sentence.c libexpat-compat.c \
+ plural-table.c quote.h sentence.h sentence.c \
+ format.c format-invalid.h format-c.c format-c-parse.h \
+ format-sh.c format-python.c format-python-brace.c \
+ format-lisp.c format-elisp.c format-librep.c format-scheme.c \
Expand All @@ -101,7 +101,7 @@ diff -urN a/gettext-tools/src/Makefile.in b/gettext-tools/src/Makefile.in
+ format-php.c format-gcc-internal.c format-gfc-internal.c \
+ format-qt.c format-qt-plural.c format-kde.c format-kde-kuit.c \
format-boost.c format-lua.c format-javascript.c \
../woe32dll/c++format.cc read-desktop.c \
../woe32dll/c++format.cc read-desktop.c locating-rule.c its.c \
../woe32dll/gettextsrc-exports.c
@@ -413,7 +416,18 @@
libgettextsrc_la-open-catalog.lo libgettextsrc_la-dir-list.lo \
Expand Down Expand Up @@ -149,18 +149,19 @@ diff -urN a/gettext-tools/src/Makefile.in b/gettext-tools/src/Makefile.in
libgettextsrc_la-msgl-iconv.lo libgettextsrc_la-msgl-equal.lo \
libgettextsrc_la-msgl-cat.lo libgettextsrc_la-msgl-header.lo \
libgettextsrc_la-msgl-english.lo \
@@ -482,8 +493,8 @@
@@ -482,9 +493,9 @@
libgettextsrc_la-msgl-charset.lo libgettextsrc_la-po-time.lo \
libgettextsrc_la-plural-exp.lo libgettextsrc_la-plural-eval.lo \
libgettextsrc_la-plural-table.lo libgettextsrc_la-sentence.lo \
- libgettextsrc_la-libexpat-compat.lo $(am__objects_2) \
- libgettextsrc_la-read-desktop.lo $(am__objects_3)
+ libgettextsrc_la-libexpat-compat.lo $(am__objects_4) \
+ libgettextsrc_la-read-desktop.lo $(am__objects_5)
- $(am__objects_2) libgettextsrc_la-read-desktop.lo \
+ $(am__objects_4) libgettextsrc_la-read-desktop.lo \
libgettextsrc_la-locating-rule.lo libgettextsrc_la-its.lo \
- $(am__objects_3)
+ $(am__objects_5)
libgettextsrc_la_OBJECTS = $(am_libgettextsrc_la_OBJECTS)
PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
am_cldr_plurals_OBJECTS = cldr_plurals-cldr-plural.$(OBJEXT) \
@@ -1975,15 +1986,29 @@
@@ -1975,15 +1986,28 @@
@WOE32DLL_TRUE@ format-qt.c format-qt-plural.c format-kde.c \
@WOE32DLL_TRUE@ format-kde-kuit.c format-boost.c format-lua.c \
@WOE32DLL_TRUE@ format-javascript.c
Expand All @@ -185,15 +186,14 @@ diff -urN a/gettext-tools/src/Makefile.in b/gettext-tools/src/Makefile.in
- write-po.c msgl-ascii.c msgl-iconv.c msgl-equal.c msgl-cat.c \
- msgl-header.c msgl-english.c msgl-check.c file-list.c \
- msgl-charset.c po-time.c plural-exp.c plural-eval.c \
- plural-table.c quote.h sentence.h sentence.c libexpat-compat.c \
- $(FORMAT_SOURCE) read-desktop.c $(am__append_1)
- plural-table.c quote.h sentence.h sentence.c $(FORMAT_SOURCE) \
- read-desktop.c locating-rule.c its.c $(am__append_1)
+libgettextsrc_la_SOURCES = $(COMMON_SOURCE) read-catalog.c \
+ $(COLOR_SOURCE) $(OUTPUT_SOURCE) msgl-ascii.c msgl-iconv.c \
+ msgl-equal.c msgl-cat.c msgl-header.c msgl-english.c \
+ msgl-check.c file-list.c msgl-charset.c po-time.c plural-exp.c \
+ plural-eval.c plural-table.c quote.h sentence.h sentence.c \
+ libexpat-compat.c $(FORMAT_SOURCE) read-desktop.c \
+ $(am__append_1)
+ $(FORMAT_SOURCE) read-desktop.c locating-rule.c its.c $(am__append_1)

# msggrep needs pattern matching.
LIBGREP = ../libgrep/libgrep.a
Expand Down
44 changes: 44 additions & 0 deletions patches/gettext/0.19.7/140-Fix-Cygwin-sys-select.patch
@@ -0,0 +1,44 @@
>From cfbc1c62a1ea5c5809d11b957ad29cd820db15b8 Mon Sep 17 00:00:00 2001
From: Paul Eggert <address@hidden>
Date: Mon, 21 Mar 2016 00:49:17 -0700
Subject: [PATCH] sys_select: port to new Cygwin

Problem reported by Ken Brown in:
https://lists.gnu.org/archive/html/bug-gnulib/2016-03/msg00054.html
* lib/sys_select.in.h [__CYGWIN__]: Avoid "unknown type name"
diagnostics.
---
ChangeLog | 8 ++++++++
lib/sys_select.in.h | 10 ++++++----
2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/gettext-tools/gnulib-lib/sys_select.in.h b/gettext-tools/gnulib-lib/sys_select.in.h
index d6d3f9f..7281144 100644
--- a/gettext-tools/gnulib-lib/sys_select.in.h
+++ b/gettext-tools/gnulib-lib/sys_select.in.h
@@ -81,8 +81,9 @@
of 'struct timeval', and no definition of this type.
Also, Mac OS X, AIX, HP-UX, IRIX, Solaris, Interix declare select()
in <sys/time.h>.
- But avoid namespace pollution on glibc systems. */
-# ifndef __GLIBC__
+ But avoid namespace pollution on glibc systems and "unknown type
+ name" problems on Cygwin. */
+# if !(defined __GLIBC__ || defined __CYGWIN__)
# include <sys/time.h>
# endif

@@ -100,10 +101,11 @@
#endif

/* Get definition of 'sigset_t'.
- But avoid namespace pollution on glibc systems.
+ But avoid namespace pollution on glibc systems and "unknown type
+ name" problems on Cygwin.
Do this after the include_next (for the sake of OpenBSD 5.0) but before
the split double-inclusion guard (for the sake of Solaris). */
-#if !(defined __GLIBC__ && !defined __UCLIBC__)
+#if !((defined __GLIBC__ || defined __CYGWIN__) && !defined __UCLIBC__)
# include <signal.h>
#endif

26 changes: 26 additions & 0 deletions patches/gettext/0.19.7/150-Fix-Cygwin-sys-select-2.patch
@@ -0,0 +1,26 @@
--- a/gettext-tools/gnulib-lib/sys_select.in.h
+++ b/gettext-tools/gnulib-lib/sys_select.in.h
@@ -82,8 +82,8 @@
Also, Mac OS X, AIX, HP-UX, IRIX, Solaris, Interix declare select()
in <sys/time.h>.
But avoid namespace pollution on glibc systems and "unknown type
- name" problems on Cygwin. */
-# if !(defined __GLIBC__ || defined __CYGWIN__)
+ name" problems on newlib systems. */
+# if !(defined __GLIBC__ || defined __NEWLIB__)
# include <sys/time.h>
# endif

@@ -102,10 +102,10 @@

/* Get definition of 'sigset_t'.
But avoid namespace pollution on glibc systems and "unknown type
- name" problems on Cygwin.
+ name" problems on newlib systems..
Do this after the include_next (for the sake of OpenBSD 5.0) but before
the split double-inclusion guard (for the sake of Solaris). */
-#if !((defined __GLIBC__ || defined __CYGWIN__) && !defined __UCLIBC__)
+#if !((defined __GLIBC__ || defined __NEWLIB__) && !defined __UCLIBC__)
# include <signal.h>
#endif

This file was deleted.

@@ -0,0 +1,16 @@
--- linux-4.2/arch/x86/tools/relocs.c.orig 2015-10-20 22:36:03.075546600 +0100
+++ linux-4.2/arch/x86/tools/relocs.c 2015-10-20 22:36:04.934950000 +0100
@@ -187,6 +187,13 @@
return name;
}

+/* Hack for Cygwin */
+#if ELF_BITS == 64
+#if !defined(R_X86_64_JUMP_SLOT) && defined(R_X86_64_JMP_SLOT)
+#define R_X86_64_JUMP_SLOT R_X86_64_JMP_SLOT
+#endif
+#endif
+
static const char *rel_type(unsigned type)
{
static const char *type_name[] = {
@@ -0,0 +1,16 @@
--- linux-4.2/arch/x86/tools/relocs.c.orig 2015-10-20 22:36:03.075546600 +0100
+++ linux-4.2/arch/x86/tools/relocs.c 2015-10-20 22:36:04.934950000 +0100
@@ -187,6 +187,13 @@
return name;
}

+/* Hack for Cygwin */
+#if ELF_BITS == 64
+#if !defined(R_X86_64_JUMP_SLOT) && defined(R_X86_64_JMP_SLOT)
+#define R_X86_64_JUMP_SLOT R_X86_64_JMP_SLOT
+#endif
+#endif
+
static const char *rel_type(unsigned type)
{
static const char *type_name[] = {
@@ -0,0 +1,16 @@
--- linux-4.2/arch/x86/tools/relocs.c.orig 2015-10-20 22:36:03.075546600 +0100
+++ linux-4.2/arch/x86/tools/relocs.c 2015-10-20 22:36:04.934950000 +0100
@@ -187,6 +187,13 @@
return name;
}

+/* Hack for Cygwin */
+#if ELF_BITS == 64
+#if !defined(R_X86_64_JUMP_SLOT) && defined(R_X86_64_JMP_SLOT)
+#define R_X86_64_JUMP_SLOT R_X86_64_JMP_SLOT
+#endif
+#endif
+
static const char *rel_type(unsigned type)
{
static const char *type_name[] = {
@@ -0,0 +1,16 @@
--- linux-4.2/arch/x86/tools/relocs.c.orig 2015-10-20 22:36:03.075546600 +0100
+++ linux-4.2/arch/x86/tools/relocs.c 2015-10-20 22:36:04.934950000 +0100
@@ -187,6 +187,13 @@
return name;
}

+/* Hack for Cygwin */
+#if ELF_BITS == 64
+#if !defined(R_X86_64_JUMP_SLOT) && defined(R_X86_64_JMP_SLOT)
+#define R_X86_64_JUMP_SLOT R_X86_64_JMP_SLOT
+#endif
+#endif
+
static const char *rel_type(unsigned type)
{
static const char *type_name[] = {
@@ -0,0 +1,16 @@
--- linux-4.2/arch/x86/tools/relocs.c.orig 2015-10-20 22:36:03.075546600 +0100
+++ linux-4.2/arch/x86/tools/relocs.c 2015-10-20 22:36:04.934950000 +0100
@@ -187,6 +187,13 @@
return name;
}

+/* Hack for Cygwin */
+#if ELF_BITS == 64
+#if !defined(R_X86_64_JUMP_SLOT) && defined(R_X86_64_JMP_SLOT)
+#define R_X86_64_JUMP_SLOT R_X86_64_JMP_SLOT
+#endif
+#endif
+
static const char *rel_type(unsigned type)
{
static const char *type_name[] = {
@@ -0,0 +1,16 @@
--- linux-4.2/arch/x86/tools/relocs.c.orig 2015-10-20 22:36:03.075546600 +0100
+++ linux-4.2/arch/x86/tools/relocs.c 2015-10-20 22:36:04.934950000 +0100
@@ -187,6 +187,13 @@
return name;
}

+/* Hack for Cygwin */
+#if ELF_BITS == 64
+#if !defined(R_X86_64_JUMP_SLOT) && defined(R_X86_64_JMP_SLOT)
+#define R_X86_64_JUMP_SLOT R_X86_64_JMP_SLOT
+#endif
+#endif
+
static const char *rel_type(unsigned type)
{
static const char *type_name[] = {
@@ -0,0 +1,16 @@
--- linux-4.2/arch/x86/tools/relocs.c.orig 2015-10-20 22:36:03.075546600 +0100
+++ linux-4.2/arch/x86/tools/relocs.c 2015-10-20 22:36:04.934950000 +0100
@@ -187,6 +187,13 @@
return name;
}

+/* Hack for Cygwin */
+#if ELF_BITS == 64
+#if !defined(R_X86_64_JUMP_SLOT) && defined(R_X86_64_JMP_SLOT)
+#define R_X86_64_JUMP_SLOT R_X86_64_JMP_SLOT
+#endif
+#endif
+
static const char *rel_type(unsigned type)
{
static const char *type_name[] = {
@@ -0,0 +1,16 @@
--- linux-4.2/arch/x86/tools/relocs.c.orig 2015-10-20 22:36:03.075546600 +0100
+++ linux-4.2/arch/x86/tools/relocs.c 2015-10-20 22:36:04.934950000 +0100
@@ -187,6 +187,13 @@
return name;
}

+/* Hack for Cygwin */
+#if ELF_BITS == 64
+#if !defined(R_X86_64_JUMP_SLOT) && defined(R_X86_64_JMP_SLOT)
+#define R_X86_64_JUMP_SLOT R_X86_64_JMP_SLOT
+#endif
+#endif
+
static const char *rel_type(unsigned type)
{
static const char *type_name[] = {
16 changes: 16 additions & 0 deletions patches/linux/4.8.8/100-Define-R_X86_64_JUMP_SLOT-for-Cygwin.patch
@@ -0,0 +1,16 @@
--- linux-4.2/arch/x86/tools/relocs.c.orig 2015-10-20 22:36:03.075546600 +0100
+++ linux-4.2/arch/x86/tools/relocs.c 2015-10-20 22:36:04.934950000 +0100
@@ -187,6 +187,13 @@
return name;
}

+/* Hack for Cygwin */
+#if ELF_BITS == 64
+#if !defined(R_X86_64_JUMP_SLOT) && defined(R_X86_64_JMP_SLOT)
+#define R_X86_64_JUMP_SLOT R_X86_64_JMP_SLOT
+#endif
+#endif
+
static const char *rel_type(unsigned type)
{
static const char *type_name[] = {
8 changes: 7 additions & 1 deletion scripts/functions
Expand Up @@ -1574,6 +1574,7 @@ CT_IterateMultilibs() {
local -a multilibs
local multi_dir multi_os_dir multi_root multi_flags multi_index multi_target
local root_suffix
local dir_postfix

# Name used internally below
if [ "${prefix}" = "sysroot-check" ]; then
Expand Down Expand Up @@ -1655,7 +1656,12 @@ CT_IterateMultilibs() {
multi_os_dir=.
fi

CT_mkdir_pushd "${prefix}_${multi_dir//\//_}"
# Brain-dead Cygwin hack: Cygwin cannot run a binary if there is a directory
# component in the path that ends with a dot. Unfortunately, that's the case
# for the default library name with GCC.
dir_postfix=_${multi_dir//\//_}
dir_postfix=${dir_postfix%_.}
CT_mkdir_pushd "${prefix}${dir_postfix}"
$func multi_dir="${multi_dir}" \
multi_os_dir="${multi_os_dir}" \
multi_flags="${multi_flags}" \
Expand Down

0 comments on commit da3f8c4

Please sign in to comment.