Respect user LDFLAGS. Fix building with gcc-3.4/-O0 #180619 by Natanael Copa. Add...
authorMike Frysinger <vapier@gentoo.org>
Fri, 22 Feb 2008 03:38:51 +0000 (03:38 +0000)
committerMike Frysinger <vapier@gentoo.org>
Fri, 22 Feb 2008 03:38:51 +0000 (03:38 +0000)
Package-Manager: portage-2.2_pre2

sys-block/iscsitarget/ChangeLog
sys-block/iscsitarget/Manifest
sys-block/iscsitarget/files/ietd-init.d
sys-block/iscsitarget/files/iscsitarget-0.4.15-build.patch [new file with mode: 0644]
sys-block/iscsitarget/files/iscsitarget-0.4.15-isns-set-scn-flag.patch [new file with mode: 0644]
sys-block/iscsitarget/files/iscsitarget-0.4.15-kmem.patch [new file with mode: 0644]
sys-block/iscsitarget/files/iscsitarget-0.4.15-scatter.patch [new file with mode: 0644]
sys-block/iscsitarget/iscsitarget-0.4.15-r1.ebuild

index 40597dcb8cc98b1b1ddd329648a04d233636e7f2..23c64300fc62d950d22d19d6cd5aae5b612739c1 100644 (file)
@@ -1,6 +1,15 @@
 # ChangeLog for sys-block/iscsitarget
 # Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-block/iscsitarget/ChangeLog,v 1.8 2008/01/14 01:58:58 robbat2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-block/iscsitarget/ChangeLog,v 1.9 2008/02/22 03:38:50 vapier Exp $
+
+  22 Feb 2008; Mike Frysinger <vapier@gentoo.org>
+  +files/iscsitarget-0.4.15-build.patch,
+  +files/iscsitarget-0.4.15-isns-set-scn-flag.patch,
+  +files/iscsitarget-0.4.15-kmem.patch,
+  +files/iscsitarget-0.4.15-scatter.patch, files/ietd-init.d,
+  iscsitarget-0.4.15-r1.ebuild:
+  Respect user LDFLAGS. Fix building with gcc-3.4/-O0 #180619 by Natanael
+  Copa. Add some kernel updates from upstream #191313.
 
   14 Jan 2008; Robin H. Johnson <robbat2@gentoo.org> metadata.xml:
   Change herd.
index 54ca63018c53af3ea375ca7ae315b98e0fd13dc5..aaa5afe21290e60d26bdad46c57683c11c049685 100644 (file)
@@ -1,15 +1,20 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
 AUX ietd-conf.d 1073 RMD160 ade5301c8e2eb8cbc16dfae4bfa80e22393e2953 SHA1 1bb990e26b847169d4937e5d2fc28a5f86d55003 SHA256 28c4a6ddfe555d9f400513de04e2e44473263c4505434fc6e926d2b2fe89c414
-AUX ietd-init.d 2491 RMD160 b47b829be35f10271698d972fa681eef257fa169 SHA1 6dc8c280540b7976e6daadd063afdb2dc6a9df08 SHA256 e7c7dd65a8c1dc1fa1a1ec629c7d9892ab33b31bf0e3d2757b6127bdb82be92e
-AUX iscsitarget-0.4.13-usrbuildfix.patch 360 RMD160 db8d564f28d966caa795e69c5cc56fd8e0d5a38f SHA1 e48a15dcc780bc7c6289d03e14dbffa4056dd1c3 SHA256 b55c547d1d8c622beff46c01c0e683c1c47e23f1aef0afda78007b3507401eb2
-AUX iscsitarget-0.4.14-isns-compilefix.patch 421 RMD160 9164646f11a3e2f9c77ff315fe72e98af22ac808 SHA1 90e6728a050609fc1ca113793c3ab982439191ca SHA256 ca0d4b1661661a43ba1cc9f88572005b9aa0725c6ae75b302cf7a494c85dec00
-DIST iscsitarget-0.4.12.tar.gz 87678 RMD160 1f2295100b653f3b7c6dbb791be870a6c4842715 SHA1 127c03e2f19ccb7a12eeb73a7944e698b90a77e7 SHA256 3a888cf51a72a308441e956074be8b7aab5aa3de6229343ba5255749a3e24c3c
-DIST iscsitarget-0.4.13.tar.gz 88236 RMD160 d0924c0e46f4131eaf2565db8e92c8fc1527e4ea SHA1 0bd2a3a547be068fbb25dd8226d71fdaa874a120 SHA256 afb74a6753e5e73c5b614da2bfc779c7b3e11576474582cbd22f86babbfeeb06
-DIST iscsitarget-0.4.14.tar.gz 92608 RMD160 71cef6dedc54a35b848a5b9152441b043bee11aa SHA1 56251815c1a62425adb82fe59de47f74095df3fb SHA256 afb1d0e6c8c81688ca6f821bf4b4a35993a77e51ce0508b1b97302d8ba6275f7
+AUX ietd-init.d 2490 RMD160 f8236e27db076f93308a627d20f6bf11eef0cdac SHA1 731b4ba2e0a60cd8ce3892988e6248501ec6c91b SHA256 efe61cefe96571dd5ef3c38d0f692f40f66ad9dc30db436471ef998c0491a9a2
+AUX iscsitarget-0.4.15-build.patch 527 RMD160 2199754d3e8befbe12fb4e12b25cd9ca0974cb15 SHA1 4bce3d74e723fd4d8ddbf2ca3623651eea684f63 SHA256 508535914bac15c14ce727ddc9f3962478afe38fbb53bfe1392fc031611bfef1
+AUX iscsitarget-0.4.15-isns-set-scn-flag.patch 507 RMD160 9a3b091eafb3d213a0c830a691684e0dc1f04b9c SHA1 9d80a8d1b5069e6ec5252ed8b1636023288bada2 SHA256 dc99ad8fa1cc10f6c6af4c99374dd0da14d3a56aebee2c48dd02cd8e156f9996
+AUX iscsitarget-0.4.15-kmem.patch 1459 RMD160 9bff8127a865fe6ca86616966f092344de24c240 SHA1 8af2830595558373c0e9e5be0e673ea840fed0ee SHA256 f65e20f1bf5c7823056d0760b43841c4e2a4b1280c923bc91fbda951cf72dd91
+AUX iscsitarget-0.4.15-scatter.patch 4388 RMD160 f41ad197a2b27e34595a4bf1be743eaed2e7cd12 SHA1 b0bbfb2b088d8f18792c4ce44b65557dccabaa0a SHA256 277607b25d32e73846e2dde0bfdd0393b5c804e93c3a1eb93d9daae0e4101b20
 DIST iscsitarget-0.4.15.tar.gz 102922 RMD160 d7d787f1fcbdb124d17eaaa62eaa47c21b6e5dd2 SHA1 c4802e208077bc0249518555c7eace6808de1878 SHA256 da8eb570f9abb6e50c515321747407e9945f5a83bab774c42ed41809234505cb
-EBUILD iscsitarget-0.4.12.ebuild 1246 RMD160 d45b7d20f63eb3446a0d1f59673b56f098046b9a SHA1 9b70dcd2d08edb15b978908cdb9010424181c7ef SHA256 0937fc4175143dfb9572d848d5d6527f327c114d59967f99be373a64a27ca5e0
-EBUILD iscsitarget-0.4.13.ebuild 1793 RMD160 3d4746fae05ef4aca6cc16a6389bdd156b5d727b SHA1 f4c8a160e8c8aca679b32a52f684f783a26d23bc SHA256 9f00c3096a26f711d9903e15a130bbf25516e6bddad38871650c2c3a3069068b
-EBUILD iscsitarget-0.4.14.ebuild 1801 RMD160 f0bfdf308e8d7f138da283ebd7052d6696982ad7 SHA1 d1c15fa0df1a2e91a705838e2497020919c611ea SHA256 8430be6358ba71b399a4ba54e154ddf3d4d2dd97ae159403e1c5d7dd6cf3b8ef
-EBUILD iscsitarget-0.4.15-r1.ebuild 1934 RMD160 1d27d834541b3553279e9ddf7b5e8d0b8e36a3b1 SHA1 9a5abc0a271356d6ef368d68de309beb7c6ac0dd SHA256 696ead7f97956b36a8855f31068653f14b02ed07951db03dfc04f8014e9a9126
-EBUILD iscsitarget-0.4.15.ebuild 1746 RMD160 89f74d4e956ef1134aa68edb2d896166dac6d981 SHA1 cea69312a860a82e9e36313e864581825cb0dff6 SHA256 68ca87e41c42b0047f9220254066709b53347bc8fa734a7db880fb8bb030eea1
-MISC ChangeLog 1632 RMD160 27a20f0fe3f22a0d6c6a158b9a55c77e5f0d89c7 SHA1 e87e25fc28807cde95cceefe1a5413cdc77fddef SHA256 ad0fe79954c01b626f4004ad51e5beadb091f85ef5b5e43ec7d56e3a456fcc3d
+EBUILD iscsitarget-0.4.15-r1.ebuild 1981 RMD160 e68d80211496af84fae6e93693b913ee24e6972c SHA1 8ebf3c69596d2c3d87d2dbfb8c22794645066e3f SHA256 f84656588ca7a7de6de03a89e7d4fea117414ab12aadf690e41b355d2be43b26
+MISC ChangeLog 2039 RMD160 56961ca63e900e74a3065cfec0fef5615abf8313 SHA1 9e05e451777b1d5c4fd5e240774b7aaee5811f28 SHA256 4c439d5e06c92ab9b25b6f64fb240d4f02dab4097f4d08ea186b46360b69221b
 MISC metadata.xml 164 RMD160 f43cbec30b7074319087c9acffdb9354b17b0db3 SHA1 9c213f5803676c56439df3716be07d6692588856 SHA256 f5f2891f2a4791cd31350bb2bb572131ad7235cd0eeb124c9912c187ac10ce92
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.7 (GNU/Linux)
+
+iD8DBQFHvkPQj9hvisErhMIRAu2oAJ4mJOpRwC0MJz0OTohEAVHSrzvlpACg2S0N
+HAHIvw7RR4VI68CH06WL7CE=
+=3Rmu
+-----END PGP SIGNATURE-----
index 33d65f4baea173c42b39960fee018dd2db0e7d81..27d67bf92485bc59443ff7a9325dc081dc01b2df 100644 (file)
@@ -1,7 +1,7 @@
 #!/sbin/runscript
-# Copyright 1999-2005 Gentoo Technologies, Inc.
+# Copyright 1999-2008 Gentoo Technologies, Inc.
 # Distributed under the terms of the GNU General Public License, v2 or later
-# $Header: /var/cvsroot/gentoo-x86/sys-block/iscsitarget/files/ietd-init.d,v 1.1 2006/02/20 08:33:40 robbat2 Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-block/iscsitarget/files/ietd-init.d,v 1.2 2008/02/22 03:38:51 vapier Exp $
 
 MEM_SIZE=1048576
 DAEMON=/usr/sbin/ietd
@@ -79,7 +79,7 @@ stop() {
     # ugly, but ietadm does not allways provides correct exit values
        RETURN="$(ietadm --op delete 2>&1)"
        RETVAL=$?
-       if [ $RETVAL == "0" ] && [[ $RETURN != "something wrong" ]]; then
+       if [ $RETVAL -eq 0 ] && [ "$RETURN" != "something wrong" ] ; then
                eend 0
        else
                eend 1
diff --git a/sys-block/iscsitarget/files/iscsitarget-0.4.15-build.patch b/sys-block/iscsitarget/files/iscsitarget-0.4.15-build.patch
new file mode 100644 (file)
index 0000000..44f830d
--- /dev/null
@@ -0,0 +1,22 @@
+--- usr/Makefile
++++ usr/Makefile
+@@ -1,15 +1,14 @@
+-CFLAGS += -O2 -fno-inline -Wall -Wstrict-prototypes -g -I../include
++CFLAGS ?= -O2 -fno-inline -g
++WARNFLAGS = -Wall -Wstrict-prototypes
++CFLAGS += $(WARNFLAGS) -I../include
+ PROGRAMS = ietd ietadm
+-LIBS = -lcrypto
++LDLIBS = -lcrypto
+ 
+ all: $(PROGRAMS)
+ 
+ ietd: ietd.o iscsid.o conn.o session.o target.o message.o ctldev.o log.o chap.o event.o param.o plain.o isns.o
+ 
+-      $(CC) $^ -o $@ $(LIBS)
+-
+ ietadm: ietadm.o param.o
+-      $(CC) $^ -o $@
+ 
+ clean:
+       rm -f *.o $(PROGRAMS)
diff --git a/sys-block/iscsitarget/files/iscsitarget-0.4.15-isns-set-scn-flag.patch b/sys-block/iscsitarget/files/iscsitarget-0.4.15-isns-set-scn-flag.patch
new file mode 100644 (file)
index 0000000..47ca031
--- /dev/null
@@ -0,0 +1,20 @@
+http://bugs.gentoo.org/180619
+
+--- usr/isns.c
++++ usr/isns.c
+@@ -215,13 +215,13 @@
+ 
+ #if __BYTE_ORDER == __LITTLE_ENDIAN
+ #define set_scn_flag(x)                                               \
+-{                                                             \
++({                                                            \
+       x = (x & 0x55555555) << 1 | (x & 0xaaaaaaaa) >> 1;      \
+       x = (x & 0x33333333) << 2 | (x & 0xcccccccc) >> 2;      \
+       x = (x & 0x0f0f0f0f) << 4 | (x & 0xf0f0f0f0) >> 4;      \
+       x = (x & 0x00ff00ff) << 8 | (x & 0xff00ff00) >> 8;      \
+       x = (x & 0x0000ffff) << 16 | (x & 0xffff0000) >> 16;    \
+-}
++})
+ #else
+ #define set_scn_flag(x) (x)
+ #endif
diff --git a/sys-block/iscsitarget/files/iscsitarget-0.4.15-kmem.patch b/sys-block/iscsitarget/files/iscsitarget-0.4.15-kmem.patch
new file mode 100644 (file)
index 0000000..55e96f3
--- /dev/null
@@ -0,0 +1,44 @@
+------------------------------------------------------------------------
+r138 | tomo | 2007-09-20 19:26:20 -0400 (Thu, 20 Sep 2007) | 12 lines
+
+From: Arne Redlich <agr@powerkom-dd.de>
+Subject: 2.6.23 compile fix
+Date: Thu, 20 Sep 2007 23:30:19 +0200
+
+kmem_cache_create()'s arguments will change with 2.6.23.
+
+Note that instead of simply modifying the kmem_cache_create() calls to
+match the new interface, they're replaced with KMEM_CACHE(), which was
+introduced with 2.6.22 to simplify slab cache creation.
+
+Merely compile tested.
+
+------------------------------------------------------------------------
+Index: kernel/iscsi.c
+===================================================================
+--- kernel/iscsi.c     (revision 137)
++++ kernel/iscsi.c     (revision 138)
+@@ -1757,8 +1757,7 @@ static int iscsi_init(void)
+       if ((err = event_init()) < 0)
+               goto err;
+ 
+-      iscsi_cmnd_cache = kmem_cache_create("iscsi_cmnd", sizeof(struct iscsi_cmnd),
+-                                           0, 0, NULL, NULL);
++      iscsi_cmnd_cache = KMEM_CACHE(iscsi_cmnd, 0);
+       if (!iscsi_cmnd_cache)
+               goto err;
+ 
+Index: kernel/tio.c
+===================================================================
+--- kernel/tio.c       (revision 137)
++++ kernel/tio.c       (revision 138)
+@@ -110,8 +110,7 @@ int tio_sync(struct iet_volume *lu, stru
+ 
+ int tio_init(void)
+ {
+-      tio_cache = kmem_cache_create("tio", sizeof(struct tio),
+-                                    0, 0, NULL, NULL);
++      tio_cache = KMEM_CACHE(tio, 0);
+       return  tio_cache ? 0 : -ENOMEM;
+ }
+ 
diff --git a/sys-block/iscsitarget/files/iscsitarget-0.4.15-scatter.patch b/sys-block/iscsitarget/files/iscsitarget-0.4.15-scatter.patch
new file mode 100644 (file)
index 0000000..0d41d15
--- /dev/null
@@ -0,0 +1,160 @@
+------------------------------------------------------------------------
+r146 | tomo | 2008-02-11 07:26:38 -0500 (Mon, 11 Feb 2008) | 5 lines
+
+From: Arne Redlich <agr@powerkom-dd.de>
+Subject: fix compilation on 2.6.24
+Date: Sun, 10 Feb 2008 22:26:28 +0100
+
+
+------------------------------------------------------------------------
+Index: kernel/block-io.c
+===================================================================
+--- kernel/block-io.c  (revision 145)
++++ kernel/block-io.c  (revision 146)
+@@ -28,15 +28,10 @@ struct tio_work {
+       struct completion tio_complete;
+ };
+ 
+-static int
+-blockio_bio_endio(struct bio *bio, unsigned int bytes_done, int error)
++static void blockio_bio_endio(struct bio *bio, int error)
+ {
+       struct tio_work *tio_work = bio->bi_private;
+ 
+-      /* Ignore partials */
+-      if (bio->bi_size)
+-              return 1;
+-
+       error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? error : -EIO;
+ 
+       if (error)
+@@ -47,8 +42,6 @@ blockio_bio_endio(struct bio *bio, unsig
+               complete(&tio_work->tio_complete);
+ 
+       bio_put(bio);
+-
+-      return 0;
+ }
+ 
+ /*
+Index: kernel/config.c
+===================================================================
+--- kernel/config.c    (revision 145)
++++ kernel/config.c    (revision 146)
+@@ -40,7 +40,7 @@ int iet_procfs_init(void)
+       int i;
+       struct proc_dir_entry *ent;
+ 
+-      if (!(proc_iet_dir = proc_mkdir("net/iet", 0)))
++      if (!(proc_iet_dir = proc_mkdir("iet", init_net.proc_net)))
+               goto err;
+ 
+       proc_iet_dir->owner = THIS_MODULE;
+Index: kernel/digest.c
+===================================================================
+--- kernel/digest.c    (revision 145)
++++ kernel/digest.c    (revision 146)
+@@ -161,22 +161,17 @@ static inline void __dbg_simulate_data_d
+       }
+ }
+ 
+-/* Copied from linux-iscsi initiator and slightly adjusted */
+-#define SETSG(sg, p, l) do {                                  \
+-      (sg).page = virt_to_page((p));                          \
+-      (sg).offset = ((unsigned long)(p) & ~PAGE_CACHE_MASK);  \
+-      (sg).length = (l);                                      \
+-} while (0)
+-
+ static void digest_header(struct hash_desc *hash, struct iscsi_pdu *pdu,
+                         u8 *crc)
+ {
+       struct scatterlist sg[2];
+       unsigned int nbytes = sizeof(struct iscsi_hdr);
+ 
+-      SETSG(sg[0], &pdu->bhs, nbytes);
++      sg_init_table(sg, pdu->ahssize ? 2 : 1);
++
++      sg_set_buf(&sg[0], &pdu->bhs, nbytes);
+       if (pdu->ahssize) {
+-              SETSG(sg[1], pdu->ahs, pdu->ahssize);
++              sg_set_buf(&sg[1], pdu->ahs, pdu->ahssize);
+               nbytes += pdu->ahssize;
+       }
+ 
+@@ -220,6 +215,7 @@ static void digest_data(struct hash_desc
+ 
+       assert(count <= ISCSI_CONN_IOV_MAX);
+ 
++      sg_init_table(sg, ARRAY_SIZE(cmnd->conn->hash_sg));
+       crypto_hash_init(hash);
+ 
+       for (i = 0; size; i++) {
+@@ -228,13 +224,13 @@ static void digest_data(struct hash_desc
+               else
+                       length = size;
+ 
+-              sg[i].page = tio->pvec[idx + i];
+-              sg[i].offset = offset;
+-              sg[i].length = length;
++              sg_set_page(&sg[i], tio->pvec[idx + i], length, offset);
+               size -= length;
+               offset = 0;
+       }
+ 
++      sg_mark_end(&sg[i - 1]);
++
+       crypto_hash_update(hash, sg, nbytes);
+       crypto_hash_final(hash, crc);
+ }
+Index: kernel/event.c
+===================================================================
+--- kernel/event.c     (revision 145)
++++ kernel/event.c     (revision 146)
+@@ -28,7 +28,7 @@ static int event_recv_msg(struct sk_buff
+       return 0;
+ }
+ 
+-static int event_recv_skb(struct sk_buff *skb)
++static void event_recv_skb(struct sk_buff *skb)
+ {
+       int err;
+       struct nlmsghdr *nlh;
+@@ -37,7 +37,7 @@ static int event_recv_skb(struct sk_buff
+       while (skb->len >= NLMSG_SPACE(0)) {
+               nlh = (struct nlmsghdr *)skb->data;
+               if (nlh->nlmsg_len < sizeof(*nlh) || skb->len < nlh->nlmsg_len)
+-                      return 0;
++                      break;
+               rlen = NLMSG_ALIGN(nlh->nlmsg_len);
+               if (rlen > skb->len)
+                       rlen = skb->len;
+@@ -47,19 +47,6 @@ static int event_recv_skb(struct sk_buff
+                       netlink_ack(skb, nlh, 0);
+               skb_pull(skb, rlen);
+       }
+-      return 0;
+-}
+-
+-static void event_recv(struct sock *sk, int length)
+-{
+-      struct sk_buff *skb;
+-
+-      while ((skb = skb_dequeue(&sk->sk_receive_queue))) {
+-              if (event_recv_skb(skb) && skb->len)
+-                      skb_queue_head(&sk->sk_receive_queue, skb);
+-              else
+-                      kfree_skb(skb);
+-      }
+ }
+ 
+ static int notify(void *data, int len, int gfp_mask)
+@@ -95,7 +82,8 @@ int event_send(u32 tid, u64 sid, u32 cid
+ 
+ int event_init(void)
+ {
+-      nl = netlink_kernel_create(NETLINK_IET, 1, event_recv, THIS_MODULE);
++      nl = netlink_kernel_create(&init_net, NETLINK_IET, 1, event_recv_skb,
++                                 NULL, THIS_MODULE);
+       if (!nl)
+               return -ENOMEM;
+       else
index 71479868d90e72ff187268d17b10ccbcdbd95fa6..92a8b8267dfb62ce27b0856b7d1b51c98903721a 100644 (file)
@@ -1,6 +1,6 @@
-# Copyright 1999-2007 Gentoo Foundation
+# Copyright 1999-2008 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-block/iscsitarget/iscsitarget-0.4.15-r1.ebuild,v 1.2 2007/11/06 07:07:22 mr_bones_ Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-block/iscsitarget/iscsitarget-0.4.15-r1.ebuild,v 1.3 2008/02/22 03:38:50 vapier Exp $
 
 inherit linux-mod eutils
 
@@ -15,23 +15,25 @@ IUSE=""
 
 RDEPEND="dev-libs/openssl"
 DEPEND="${RDEPEND}
-               virtual/linux-sources"
+       virtual/linux-sources"
+
 MODULE_NAMES="iscsi_trgt(kernel/iscsi:${S}/kernel)"
 CONFIG_CHECK="CRYPTO_CRC32C"
 ERROR_CFG="iscsitarget needs support for CRC32C in your kernel."
 
 src_unpack() {
        unpack ${A}
-       EPATCH_OPTS="-d ${S} -p0" \
-       epatch ${FILESDIR}/${PN}-0.4.13-usrbuildfix.patch
-       convert_to_m ${S}/Makefile
+       cd "${S}"
+       epatch "${FILESDIR}"/${PN}-0.4.15-isns-set-scn-flag.patch #180619
+       epatch "${FILESDIR}"/${PN}-0.4.15-build.patch
+       epatch "${FILESDIR}"/${PN}-0.4.15-kmem.patch
+       epatch "${FILESDIR}"/${PN}-0.4.15-scatter.patch
+       convert_to_m "${S}"/Makefile
 }
 
 src_compile() {
-       einfo "Building userspace"
-       CFLAGS="" emake usr OPTFLAGS="${CFLAGS}" || die "failed to build userspace"
+       emake usr || die "failed to build userspace"
 
-       einfo "Building kernel modules"
        unset ARCH
        emake KSRC="${KERNEL_DIR}" kernel || die "failed to build module"
 }