summaryrefslogtreecommitdiff
path: root/patches/elf2flt/a8bc69b882a55b1f1e437b50e33d3db8414eb68e/100-fix-cygwin-build.patch
blob: 53311bf3543e59da565f5e8e25e8ad64e07cc6a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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