Browse Source

Merge pull request #1441 from commodo/ovs-musl

openvswitch: a bit of cleanup + fix musl compatibility
Steven Barth 9 years ago
parent
commit
c2d2967e59
2 changed files with 46 additions and 33 deletions
  1. 7
    33
      net/openvswitch/Makefile
  2. 39
    0
      net/openvswitch/patches/0004-musl-compatibility.patch

+ 7
- 33
net/openvswitch/Makefile View File

@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
11 11
 
12 12
 PKG_NAME:=openvswitch
13 13
 
14
-PKG_RELEASE:=2
14
+PKG_RELEASE:=3
15 15
 PKG_VERSION:=2.3.90
16 16
 PKG_RELEASE=$(PKG_SOURCE_VERSION)
17 17
 PKG_LICENSE:=Apache-2.0
@@ -24,14 +24,16 @@ PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
24 24
 PKG_SOURCE_VERSION:=58be9c9fd732b5bdd3d4c2e9b8cc2313f570094d
25 25
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
26 26
 
27
+PKG_BUILD_PARALLEL:=1
28
+PKG_FIXUP:=autoreconf
29
+PKG_INSTALL:=1
30
+
27 31
 SUPPORTED_KERNELS:=LINUX_3_8||LINUX_3_10||LINUX_3_13||LINUX_3_14||LINUX_3_18||LINUX_4_0
28 32
 
29 33
 include $(INCLUDE_DIR)/package.mk
30 34
 include $(INCLUDE_DIR)/kernel.mk
31 35
 $(call include_mk, python-package.mk)
32 36
 
33
-PKG_FIXUP=libtool
34
-
35 37
 define Package/openvswitch/Default
36 38
   SECTION:=net
37 39
   CATEGORY:=Network
@@ -52,7 +54,7 @@ endef
52 54
 define Package/openvswitch
53 55
   $(call Package/openvswitch/Default)
54 56
   TITLE:=Open vSwitch Userspace Package
55
-  DEPENDS:=+libpcap +libopenssl +librt +libatomic +kmod-openvswitch @($(SUPPORTED_KERNELS))
57
+  DEPENDS:=+libpcap +libopenssl +librt +kmod-openvswitch @($(SUPPORTED_KERNELS))
56 58
 endef
57 59
 
58 60
 define Package/openvswitch/description
@@ -112,35 +114,7 @@ CONFIGURE_ARGS += --enable-ndebug
112 114
 CONFIGURE_ARGS += --disable-ssl
113 115
 CONFIGURE_ARGS += --enable-shared
114 116
 
115
-TARGET_CFLAGS += -flto
116
-
117
-define Build/Configure
118
-	(cd $(PKG_BUILD_DIR); \
119
-		autoreconf -v --install --force || exit 1 \
120
-	);
121
-	$(call Build/Configure/Default,$(CONFIGURE_ARGS))
122
-endef
123
-
124
-KCFLAGS=
125
-ifeq ($(CONFIG_GCC_VERSION_4_9),y)
126
-KCFLAGS:=-Wno-error=date-time
127
-endif
128
-
129
-define Build/Compile
130
-	$(MAKE) -C $(PKG_BUILD_DIR) \
131
-		$(TARGET_CONFIGURE_OPTS) \
132
-		CFLAGS="-I$(PKG_BUILD_DIR)/lib $(TARGET_CFLAGS) -std=gnu99" \
133
-		LDFLAGS="-L$(PKG_BUILD_DIR)/lib $(TARGET_LDFLAGS)" \
134
-		LDFLAGS_MODULES="$(TARGET_LDFLAGS) -L$(PKG_BUILD_DIR)/lib" \
135
-		STAGING_DIR="$(STAGING_DIR)" \
136
-		DESTDIR="$(PKG_INSTALL_DIR)/usr" \
137
-		CROSS_COMPILE="$(TARGET_CROSS)" \
138
-		ARCH="$(LINUX_KARCH)" \
139
-		SUBDIRS="$(PKG_BUILD_DIR)/datapath/linux" \
140
-		PATH="$(TARGET_PATH)" \
141
-		EXTRA_CFLAGS="$(KCFLAGS)" \
142
-		KCC="$(KERNEL_CC)"
143
-endef
117
+TARGET_CFLAGS += -flto -std=gnu99
144 118
 
145 119
 define Package/openvswitch/install
146 120
 	$(INSTALL_DIR) $(1)/etc/openvswitch

+ 39
- 0
net/openvswitch/patches/0004-musl-compatibility.patch View File

@@ -0,0 +1,39 @@
1
+diff --git a/configure.ac b/configure.ac
2
+index 8d47eb9..69eeed8 100644
3
+--- a/configure.ac
4
++++ b/configure.ac
5
+@@ -117,7 +117,6 @@ OVS_CHECK_XENSERVER_VERSION
6
+ OVS_CHECK_GROFF
7
+ OVS_CHECK_GNU_MAKE
8
+ OVS_CHECK_TLS
9
+-OVS_CHECK_ATOMIC_LIBS
10
+ OVS_CHECK_GCC4_ATOMICS
11
+ OVS_CHECK_ATOMIC_ALWAYS_LOCK_FREE(1)
12
+ OVS_CHECK_ATOMIC_ALWAYS_LOCK_FREE(2)
13
+diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
14
+index 9b2e74f..70126bb 100644
15
+--- a/lib/netdev-linux.c
16
++++ b/lib/netdev-linux.c
17
+@@ -40,7 +40,9 @@
18
+ #include <netpacket/packet.h>
19
+ #include <net/if.h>
20
+ #include <net/if_arp.h>
21
++#if defined(__UCLIBC__) || defined(__GLIBC__)
22
+ #include <net/if_packet.h>
23
++#endif
24
+ #include <net/route.h>
25
+ #include <netinet/in.h>
26
+ #include <poll.h>
27
+diff --git a/lib/ovs-atomic.h b/lib/ovs-atomic.h
28
+index 9ead907..86d3341 100644
29
+--- a/lib/ovs-atomic.h
30
++++ b/lib/ovs-atomic.h
31
+@@ -325,8 +325,6 @@
32
+         #include "ovs-atomic-clang.h"
33
+     #elif HAVE_STDATOMIC_H
34
+         #include "ovs-atomic-c11.h"
35
+-    #elif __GNUC__ >= 4 && __GNUC_MINOR__ >= 7
36
+-        #include "ovs-atomic-gcc4.7+.h"
37
+     #elif __GNUC__ && defined(__x86_64__)
38
+         #include "ovs-atomic-x86_64.h"
39
+     #elif __GNUC__ && defined(__i386__)