summaryrefslogtreecommitdiff
path: root/patches/elf2flt/a8bc69b882a55b1f1e437b50e33d3db8414eb68e/100-fix-cygwin-build.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/elf2flt/a8bc69b882a55b1f1e437b50e33d3db8414eb68e/100-fix-cygwin-build.patch')
-rw-r--r--patches/elf2flt/a8bc69b882a55b1f1e437b50e33d3db8414eb68e/100-fix-cygwin-build.patch111
1 files changed, 111 insertions, 0 deletions
diff --git a/patches/elf2flt/a8bc69b882a55b1f1e437b50e33d3db8414eb68e/100-fix-cygwin-build.patch b/patches/elf2flt/a8bc69b882a55b1f1e437b50e33d3db8414eb68e/100-fix-cygwin-build.patch
new file mode 100644
index 0000000..53311bf
--- /dev/null
+++ b/patches/elf2flt/a8bc69b882a55b1f1e437b50e33d3db8414eb68e/100-fix-cygwin-build.patch
@@ -0,0 +1,111 @@
+From 4e5250f8319e72b739932b87193fa29f4a5b96b1 Mon Sep 17 00:00:00 2001
+From: Alexey Neyman <stilor@att.net>
+Date: Mon, 27 Feb 2017 01:20:10 -0800
+Subject: [PATCH] Symlink required binutils/BFD headers to local dir
+
+... to minimize the chance of clashes with system headers.
+
+Also, remove the -lcygwin from Makefile.in: this breaks canadian
+build on cygwin, as it tries to pass -lcygwin into non-Cygwin host
+CC. This chunk pre-dates the addition of -lc into configure.ac and
+passing -lc should be sufficient (it works for me).
+
+Signed-off-by: Alexey Neyman <stilor@att.net>
+---
+ Makefile.in | 21 +++++++++++++--------
+ configure | 4 ++--
+ configure.ac | 4 ++--
+ 3 files changed, 17 insertions(+), 12 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index a6feea6..46d904b 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -14,7 +14,9 @@ CPU = @target_cpu@
+ TARGET = @target_alias@
+ SYMBOL_PREFIX = @SYMBOL_PREFIX@
+ CFLAGS = @CFLAGS@
+-INCLUDES = -I$(srcdir) @bfd_include_dir@ @binutils_include_dir@ @zlib_include_dir@
++INCLUDES = -I$(srcdir) -I. @zlib_include_dir@
++BFD_INCLUDE_DIR = @bfd_include_dir@
++BINUTILS_INCLUDE_DIR = @binutils_include_dir@
+ CPPFLAGS = @CPPFLAGS@ $(DEFS) $(INCLUDES)
+ LDFLAGS = @LDFLAGS@
+ LDLIBS = @LIBS@
+@@ -38,11 +40,6 @@ ifneq (,$(findstring mingw32,$(HOST)))
+ LDLIBS += -lws2_32
+ endif
+
+-# force link order under cygwin to avoid getopts / libiberty clash
+-ifneq ($(strip $(shell gcc -v 2>&1 | grep "cygwin")),)
+- LDLIBS := -lcygwin $(LDLIBS)
+-endif
+-
+ LDFILE= elf2flt.ld
+ ifeq ($(strip $(CPU)),e1)
+ SRC_LDFILE= $(srcdir)/$(CPU)-elf2flt.ld
+@@ -101,7 +98,7 @@ check-flthdr:
+ check: check-flthdr
+
+ clean:
+- -rm -f $(PROGS) *.$(OBJEXT) .deps
++ -rm -f $(PROGS) *.$(OBJEXT) *.h elf .deps .stamp-local-include
+
+ distclean: clean
+ -rm -f Makefile config.log config.status config.cache ld-elf2flt
+@@ -121,5 +118,13 @@ install:
+ $(INSTALL) -m 644 $(SRC_LDFILE) $(DESTDIR)$(target_libdir)/$(LDFILE)
+
+ sinclude .deps
+-.deps:
++.deps: .stamp-local-include
+ $(CC) -MM $(CPPFLAGS) $(srcdir)/*.c > .deps
++
++.stamp-local-include:
++ ln -sf $(BFD_INCLUDE_DIR)/bfd.h bfd.h
++ for f in ansidecl filenames hashtab libiberty symcat; do \
++ ln -sf $(BINUTILS_INCLUDE_DIR)/$$f.h $$f.h; \
++ done
++ ln -sf $(BINUTILS_INCLUDE_DIR)/elf elf
++ touch $@
+diff --git a/configure b/configure
+index 3a4e8d6..af64990 100755
+--- a/configure
++++ b/configure
+@@ -3931,12 +3931,12 @@ fi
+
+ bfd_include_dir=
+ if test "$ac_bfd_include_dir" != "NONE"; then
+- bfd_include_dir="-I$ac_bfd_include_dir"
++ bfd_include_dir="$ac_bfd_include_dir"
+ fi
+
+ binutils_include_dir=
+ if test "$ac_binutils_include_dir" != "NONE"; then
+- binutils_include_dir="-I$ac_binutils_include_dir"
++ binutils_include_dir="$ac_binutils_include_dir"
+ fi
+
+ zlib_include_dir=
+diff --git a/configure.ac b/configure.ac
+index 6002894..b7fb790 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -135,12 +135,12 @@ fi
+
+ bfd_include_dir=
+ if test "$ac_bfd_include_dir" != "NONE"; then
+- bfd_include_dir="-I$ac_bfd_include_dir"
++ bfd_include_dir="$ac_bfd_include_dir"
+ fi
+
+ binutils_include_dir=
+ if test "$ac_binutils_include_dir" != "NONE"; then
+- binutils_include_dir="-I$ac_binutils_include_dir"
++ binutils_include_dir="$ac_binutils_include_dir"
+ fi
+
+ zlib_include_dir=
+--
+2.9.3
+