[v2,2/2] liburcu: New dependency for build of xfsprogs

Message ID 20211125181741.1307300-2-adolf.belka@ipfire.org
State Accepted
Commit 14192b69d366021d7040cedf4eb6ad9d1456cd42
Headers show
Series [v2,1/2] xfsprogs: Update to version 5.14.0 | expand

Commit Message

Adolf Belka Nov. 25, 2021, 6:17 p.m. UTC
- Created lfs file
- Created rootfile but all entries commented out. If the use of userspace rcu becomes
   something to be required as part of IPFire then the appropriate entries in the
   rootfile can be uncommented in a future commit.
- Added liburcu to the make.sh file just before xfsprogs

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 config/rootfiles/common/liburcu | 232 ++++++++++++++++++++++++++++++++
 lfs/liburcu                     |  83 ++++++++++++
 make.sh                         |   1 +
 3 files changed, 316 insertions(+)
 create mode 100644 config/rootfiles/common/liburcu
 create mode 100644 lfs/liburcu

Comments

Michael Tremer Nov. 29, 2021, 10:19 a.m. UTC | #1
Reviewed-by: Michael Tremer <michael.tremer@ipfire.org>

> On 25 Nov 2021, at 18:17, Adolf Belka <adolf.belka@ipfire.org> wrote:
> 
> - Created lfs file
> - Created rootfile but all entries commented out. If the use of userspace rcu becomes
>   something to be required as part of IPFire then the appropriate entries in the
>   rootfile can be uncommented in a future commit.
> - Added liburcu to the make.sh file just before xfsprogs
> 
> Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
> ---
> config/rootfiles/common/liburcu | 232 ++++++++++++++++++++++++++++++++
> lfs/liburcu                     |  83 ++++++++++++
> make.sh                         |   1 +
> 3 files changed, 316 insertions(+)
> create mode 100644 config/rootfiles/common/liburcu
> create mode 100644 lfs/liburcu
> 
> diff --git a/config/rootfiles/common/liburcu b/config/rootfiles/common/liburcu
> new file mode 100644
> index 000000000..f1de29d87
> --- /dev/null
> +++ b/config/rootfiles/common/liburcu
> @@ -0,0 +1,232 @@
> +#usr/include/urcu
> +#usr/include/urcu-bp.h
> +#usr/include/urcu-call-rcu.h
> +#usr/include/urcu-defer.h
> +#usr/include/urcu-flavor.h
> +#usr/include/urcu-pointer.h
> +#usr/include/urcu-qsbr.h
> +#usr/include/urcu.h
> +#usr/include/urcu/arch
> +#usr/include/urcu/arch.h
> +#usr/include/urcu/arch/aarch64.h
> +#usr/include/urcu/arch/alpha.h
> +#usr/include/urcu/arch/arm.h
> +#usr/include/urcu/arch/gcc.h
> +#usr/include/urcu/arch/generic.h
> +#usr/include/urcu/arch/hppa.h
> +#usr/include/urcu/arch/ia64.h
> +#usr/include/urcu/arch/m68k.h
> +#usr/include/urcu/arch/mips.h
> +#usr/include/urcu/arch/nios2.h
> +#usr/include/urcu/arch/ppc.h
> +#usr/include/urcu/arch/riscv.h
> +#usr/include/urcu/arch/s390.h
> +#usr/include/urcu/arch/sparc64.h
> +#usr/include/urcu/arch/tile.h
> +#usr/include/urcu/arch/x86.h
> +#usr/include/urcu/call-rcu.h
> +#usr/include/urcu/cds.h
> +#usr/include/urcu/compiler.h
> +#usr/include/urcu/config.h
> +#usr/include/urcu/debug.h
> +#usr/include/urcu/defer.h
> +#usr/include/urcu/flavor.h
> +#usr/include/urcu/futex.h
> +#usr/include/urcu/hlist.h
> +#usr/include/urcu/lfstack.h
> +#usr/include/urcu/list.h
> +#usr/include/urcu/map
> +#usr/include/urcu/map/clear.h
> +#usr/include/urcu/map/urcu-bp.h
> +#usr/include/urcu/map/urcu-mb.h
> +#usr/include/urcu/map/urcu-memb.h
> +#usr/include/urcu/map/urcu-qsbr.h
> +#usr/include/urcu/map/urcu-signal.h
> +#usr/include/urcu/map/urcu.h
> +#usr/include/urcu/pointer.h
> +#usr/include/urcu/rcuhlist.h
> +#usr/include/urcu/rculfhash.h
> +#usr/include/urcu/rculfqueue.h
> +#usr/include/urcu/rculfstack.h
> +#usr/include/urcu/rculist.h
> +#usr/include/urcu/ref.h
> +#usr/include/urcu/static
> +#usr/include/urcu/static/lfstack.h
> +#usr/include/urcu/static/pointer.h
> +#usr/include/urcu/static/rculfqueue.h
> +#usr/include/urcu/static/rculfstack.h
> +#usr/include/urcu/static/urcu-bp.h
> +#usr/include/urcu/static/urcu-common.h
> +#usr/include/urcu/static/urcu-mb.h
> +#usr/include/urcu/static/urcu-memb.h
> +#usr/include/urcu/static/urcu-qsbr.h
> +#usr/include/urcu/static/urcu-signal-nr.h
> +#usr/include/urcu/static/urcu-signal.h
> +#usr/include/urcu/static/urcu.h
> +#usr/include/urcu/static/wfcqueue.h
> +#usr/include/urcu/static/wfqueue.h
> +#usr/include/urcu/static/wfstack.h
> +#usr/include/urcu/syscall-compat.h
> +#usr/include/urcu/system.h
> +#usr/include/urcu/tls-compat.h
> +#usr/include/urcu/uatomic
> +#usr/include/urcu/uatomic.h
> +#usr/include/urcu/uatomic/aarch64.h
> +#usr/include/urcu/uatomic/alpha.h
> +#usr/include/urcu/uatomic/arm.h
> +#usr/include/urcu/uatomic/gcc.h
> +#usr/include/urcu/uatomic/generic.h
> +#usr/include/urcu/uatomic/hppa.h
> +#usr/include/urcu/uatomic/ia64.h
> +#usr/include/urcu/uatomic/m68k.h
> +#usr/include/urcu/uatomic/mips.h
> +#usr/include/urcu/uatomic/nios2.h
> +#usr/include/urcu/uatomic/ppc.h
> +#usr/include/urcu/uatomic/riscv.h
> +#usr/include/urcu/uatomic/s390.h
> +#usr/include/urcu/uatomic/sparc64.h
> +#usr/include/urcu/uatomic/tile.h
> +#usr/include/urcu/uatomic/x86.h
> +#usr/include/urcu/uatomic_arch.h
> +#usr/include/urcu/urcu-bp.h
> +#usr/include/urcu/urcu-futex.h
> +#usr/include/urcu/urcu-mb.h
> +#usr/include/urcu/urcu-memb.h
> +#usr/include/urcu/urcu-qsbr.h
> +#usr/include/urcu/urcu-signal.h
> +#usr/include/urcu/urcu.h
> +#usr/include/urcu/urcu_ref.h
> +#usr/include/urcu/wfcqueue.h
> +#usr/include/urcu/wfqueue.h
> +#usr/include/urcu/wfstack.h
> +#usr/lib/liburcu-bp.la
> +#usr/lib/liburcu-bp.so
> +#usr/lib/liburcu-bp.so.8
> +#usr/lib/liburcu-bp.so.8.0.0
> +#usr/lib/liburcu-cds.la
> +#usr/lib/liburcu-cds.so
> +#usr/lib/liburcu-cds.so.8
> +#usr/lib/liburcu-cds.so.8.0.0
> +#usr/lib/liburcu-common.la
> +#usr/lib/liburcu-common.so
> +#usr/lib/liburcu-common.so.8
> +#usr/lib/liburcu-common.so.8.0.0
> +#usr/lib/liburcu-mb.la
> +#usr/lib/liburcu-mb.so
> +#usr/lib/liburcu-mb.so.8
> +#usr/lib/liburcu-mb.so.8.0.0
> +#usr/lib/liburcu-memb.la
> +#usr/lib/liburcu-memb.so
> +#usr/lib/liburcu-memb.so.8
> +#usr/lib/liburcu-memb.so.8.0.0
> +#usr/lib/liburcu-qsbr.la
> +#usr/lib/liburcu-qsbr.so
> +#usr/lib/liburcu-qsbr.so.8
> +#usr/lib/liburcu-qsbr.so.8.0.0
> +#usr/lib/liburcu-signal.la
> +#usr/lib/liburcu-signal.so
> +#usr/lib/liburcu-signal.so.8
> +#usr/lib/liburcu-signal.so.8.0.0
> +#usr/lib/liburcu.la
> +#usr/lib/liburcu.so
> +#usr/lib/liburcu.so.8
> +#usr/lib/liburcu.so.8.0.0
> +#usr/lib/pkgconfig/liburcu-bp.pc
> +#usr/lib/pkgconfig/liburcu-cds.pc
> +#usr/lib/pkgconfig/liburcu-mb.pc
> +#usr/lib/pkgconfig/liburcu-qsbr.pc
> +#usr/lib/pkgconfig/liburcu-signal.pc
> +#usr/lib/pkgconfig/liburcu.pc
> +#usr/share/doc/userspace-rcu
> +#usr/share/doc/userspace-rcu/LICENSE
> +#usr/share/doc/userspace-rcu/README.md
> +#usr/share/doc/userspace-rcu/cds-api.md
> +#usr/share/doc/userspace-rcu/examples
> +#usr/share/doc/userspace-rcu/examples/Makefile
> +#usr/share/doc/userspace-rcu/examples/Makefile.examples.template
> +#usr/share/doc/userspace-rcu/examples/hlist
> +#usr/share/doc/userspace-rcu/examples/hlist/Makefile
> +#usr/share/doc/userspace-rcu/examples/hlist/Makefile.cds_hlist_add_head_rcu
> +#usr/share/doc/userspace-rcu/examples/hlist/Makefile.cds_hlist_del_rcu
> +#usr/share/doc/userspace-rcu/examples/hlist/Makefile.cds_hlist_for_each_entry_rcu
> +#usr/share/doc/userspace-rcu/examples/hlist/Makefile.cds_hlist_for_each_rcu
> +#usr/share/doc/userspace-rcu/examples/hlist/cds_hlist_add_head_rcu.c
> +#usr/share/doc/userspace-rcu/examples/hlist/cds_hlist_del_rcu.c
> +#usr/share/doc/userspace-rcu/examples/hlist/cds_hlist_for_each_entry_rcu.c
> +#usr/share/doc/userspace-rcu/examples/hlist/cds_hlist_for_each_rcu.c
> +#usr/share/doc/userspace-rcu/examples/lfstack
> +#usr/share/doc/userspace-rcu/examples/lfstack/Makefile
> +#usr/share/doc/userspace-rcu/examples/lfstack/Makefile.cds_lfs_pop_all_blocking
> +#usr/share/doc/userspace-rcu/examples/lfstack/Makefile.cds_lfs_pop_blocking
> +#usr/share/doc/userspace-rcu/examples/lfstack/Makefile.cds_lfs_push
> +#usr/share/doc/userspace-rcu/examples/lfstack/cds_lfs_pop_all_blocking.c
> +#usr/share/doc/userspace-rcu/examples/lfstack/cds_lfs_pop_blocking.c
> +#usr/share/doc/userspace-rcu/examples/lfstack/cds_lfs_push.c
> +#usr/share/doc/userspace-rcu/examples/list
> +#usr/share/doc/userspace-rcu/examples/list/Makefile
> +#usr/share/doc/userspace-rcu/examples/list/Makefile.cds_list_add_rcu
> +#usr/share/doc/userspace-rcu/examples/list/Makefile.cds_list_add_tail_rcu
> +#usr/share/doc/userspace-rcu/examples/list/Makefile.cds_list_del_rcu
> +#usr/share/doc/userspace-rcu/examples/list/Makefile.cds_list_for_each_entry_rcu
> +#usr/share/doc/userspace-rcu/examples/list/Makefile.cds_list_for_each_rcu
> +#usr/share/doc/userspace-rcu/examples/list/Makefile.cds_list_replace_rcu
> +#usr/share/doc/userspace-rcu/examples/list/cds_list_add_rcu.c
> +#usr/share/doc/userspace-rcu/examples/list/cds_list_add_tail_rcu.c
> +#usr/share/doc/userspace-rcu/examples/list/cds_list_del_rcu.c
> +#usr/share/doc/userspace-rcu/examples/list/cds_list_for_each_entry_rcu.c
> +#usr/share/doc/userspace-rcu/examples/list/cds_list_for_each_rcu.c
> +#usr/share/doc/userspace-rcu/examples/list/cds_list_replace_rcu.c
> +#usr/share/doc/userspace-rcu/examples/rculfhash
> +#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile
> +#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_add
> +#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_add_replace
> +#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_add_unique
> +#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_del
> +#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_destroy
> +#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_for_each_entry_duplicate
> +#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_lookup
> +#usr/share/doc/userspace-rcu/examples/rculfhash/cds_lfht_add.c
> +#usr/share/doc/userspace-rcu/examples/rculfhash/cds_lfht_add_replace.c
> +#usr/share/doc/userspace-rcu/examples/rculfhash/cds_lfht_add_unique.c
> +#usr/share/doc/userspace-rcu/examples/rculfhash/cds_lfht_del.c
> +#usr/share/doc/userspace-rcu/examples/rculfhash/cds_lfht_destroy.c
> +#usr/share/doc/userspace-rcu/examples/rculfhash/cds_lfht_for_each_entry_duplicate.c
> +#usr/share/doc/userspace-rcu/examples/rculfhash/cds_lfht_lookup.c
> +#usr/share/doc/userspace-rcu/examples/rculfhash/jhash.h
> +#usr/share/doc/userspace-rcu/examples/rculfqueue
> +#usr/share/doc/userspace-rcu/examples/rculfqueue/Makefile
> +#usr/share/doc/userspace-rcu/examples/rculfqueue/Makefile.cds_lfq_dequeue
> +#usr/share/doc/userspace-rcu/examples/rculfqueue/Makefile.cds_lfq_enqueue
> +#usr/share/doc/userspace-rcu/examples/rculfqueue/cds_lfq_dequeue.c
> +#usr/share/doc/userspace-rcu/examples/rculfqueue/cds_lfq_enqueue.c
> +#usr/share/doc/userspace-rcu/examples/urcu-flavors
> +#usr/share/doc/userspace-rcu/examples/urcu-flavors/Makefile
> +#usr/share/doc/userspace-rcu/examples/urcu-flavors/Makefile.bp
> +#usr/share/doc/userspace-rcu/examples/urcu-flavors/Makefile.mb
> +#usr/share/doc/userspace-rcu/examples/urcu-flavors/Makefile.membarrier
> +#usr/share/doc/userspace-rcu/examples/urcu-flavors/Makefile.qsbr
> +#usr/share/doc/userspace-rcu/examples/urcu-flavors/Makefile.signal
> +#usr/share/doc/userspace-rcu/examples/urcu-flavors/bp.c
> +#usr/share/doc/userspace-rcu/examples/urcu-flavors/mb.c
> +#usr/share/doc/userspace-rcu/examples/urcu-flavors/membarrier.c
> +#usr/share/doc/userspace-rcu/examples/urcu-flavors/qsbr.c
> +#usr/share/doc/userspace-rcu/examples/urcu-flavors/signal.c
> +#usr/share/doc/userspace-rcu/examples/wfcqueue
> +#usr/share/doc/userspace-rcu/examples/wfcqueue/Makefile
> +#usr/share/doc/userspace-rcu/examples/wfcqueue/Makefile.cds_wfcq_dequeue
> +#usr/share/doc/userspace-rcu/examples/wfcqueue/Makefile.cds_wfcq_enqueue
> +#usr/share/doc/userspace-rcu/examples/wfcqueue/Makefile.cds_wfcq_splice
> +#usr/share/doc/userspace-rcu/examples/wfcqueue/cds_wfcq_dequeue.c
> +#usr/share/doc/userspace-rcu/examples/wfcqueue/cds_wfcq_enqueue.c
> +#usr/share/doc/userspace-rcu/examples/wfcqueue/cds_wfcq_splice.c
> +#usr/share/doc/userspace-rcu/examples/wfstack
> +#usr/share/doc/userspace-rcu/examples/wfstack/Makefile
> +#usr/share/doc/userspace-rcu/examples/wfstack/Makefile.cds_wfs_pop
> +#usr/share/doc/userspace-rcu/examples/wfstack/Makefile.cds_wfs_pop_all_blocking
> +#usr/share/doc/userspace-rcu/examples/wfstack/Makefile.cds_wfs_push
> +#usr/share/doc/userspace-rcu/examples/wfstack/cds_wfs_pop.c
> +#usr/share/doc/userspace-rcu/examples/wfstack/cds_wfs_pop_all_blocking.c
> +#usr/share/doc/userspace-rcu/examples/wfstack/cds_wfs_push.c
> +#usr/share/doc/userspace-rcu/rcu-api.md
> +#usr/share/doc/userspace-rcu/solaris-build.md
> +#usr/share/doc/userspace-rcu/uatomic-api.md
> diff --git a/lfs/liburcu b/lfs/liburcu
> new file mode 100644
> index 000000000..0a21c0f21
> --- /dev/null
> +++ b/lfs/liburcu
> @@ -0,0 +1,83 @@
> +###############################################################################
> +#                                                                             #
> +# IPFire.org - A linux based firewall                                         #
> +# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
> +#                                                                             #
> +# This program is free software: you can redistribute it and/or modify        #
> +# it under the terms of the GNU General Public License as published by        #
> +# the Free Software Foundation, either version 3 of the License, or           #
> +# (at your option) any later version.                                         #
> +#                                                                             #
> +# This program is distributed in the hope that it will be useful,             #
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
> +# GNU General Public License for more details.                                #
> +#                                                                             #
> +# You should have received a copy of the GNU General Public License           #
> +# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
> +#                                                                             #
> +###############################################################################
> +
> +###############################################################################
> +# Definitions
> +###############################################################################
> +
> +include Config
> +
> +VER        = 0.13.0
> +
> +THISAPP    = userspace-rcu-$(VER)
> +DL_FILE    = $(THISAPP).tar.bz2
> +DL_FROM    = $(URL_IPFIRE)
> +DIR_APP    = $(DIR_SRC)/$(THISAPP)
> +TARGET     = $(DIR_INFO)/$(THISAPP)
> +
> +
> +###############################################################################
> +# Top-level Rules
> +###############################################################################
> +
> +objects = $(DL_FILE)
> +
> +$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
> +
> +$(DL_FILE)_MD5 = 8cb75dbb05774c03e66c63cb3186dd59
> +
> +install : $(TARGET)
> +
> +check : $(patsubst %,$(DIR_CHK)/%,$(objects))
> +
> +download :$(patsubst %,$(DIR_DL)/%,$(objects))
> +
> +md5 : $(subst %,%_MD5,$(objects))
> +
> +dist: 
> +	@$(PAK)
> +
> +###############################################################################
> +# Downloading, checking, md5sum
> +###############################################################################
> +
> +$(patsubst %,$(DIR_CHK)/%,$(objects)) :
> +	@$(CHECK)
> +
> +$(patsubst %,$(DIR_DL)/%,$(objects)) :
> +	@$(LOAD)
> +
> +$(subst %,%_MD5,$(objects)) :
> +	@$(MD5)
> +
> +###############################################################################
> +# Installation Details
> +###############################################################################
> +
> +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
> +	@$(PREBUILD)
> +	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
> +	cd $(DIR_APP) && ./configure \
> +		            --prefix=/usr \
> +		            --disable-static
> +	cd $(DIR_APP) && make $(MAKETUNING)
> +	cd $(DIR_APP) && make install
> +	@rm -rf $(DIR_APP)
> +	@$(POSTBUILD)
> diff --git a/make.sh b/make.sh
> index e6f948ba0..88f89c642 100755
> --- a/make.sh
> +++ b/make.sh
> @@ -1280,6 +1280,7 @@ buildipfire() {
>   lfsmake2 dosfstools
>   lfsmake2 exfatprogs
>   lfsmake2 reiserfsprogs
> +  lfsmake2 liburcu
>   lfsmake2 xfsprogs
>   lfsmake2 sysfsutils
>   lfsmake2 fuse
> -- 
> 2.34.0
>

Patch

diff --git a/config/rootfiles/common/liburcu b/config/rootfiles/common/liburcu
new file mode 100644
index 000000000..f1de29d87
--- /dev/null
+++ b/config/rootfiles/common/liburcu
@@ -0,0 +1,232 @@ 
+#usr/include/urcu
+#usr/include/urcu-bp.h
+#usr/include/urcu-call-rcu.h
+#usr/include/urcu-defer.h
+#usr/include/urcu-flavor.h
+#usr/include/urcu-pointer.h
+#usr/include/urcu-qsbr.h
+#usr/include/urcu.h
+#usr/include/urcu/arch
+#usr/include/urcu/arch.h
+#usr/include/urcu/arch/aarch64.h
+#usr/include/urcu/arch/alpha.h
+#usr/include/urcu/arch/arm.h
+#usr/include/urcu/arch/gcc.h
+#usr/include/urcu/arch/generic.h
+#usr/include/urcu/arch/hppa.h
+#usr/include/urcu/arch/ia64.h
+#usr/include/urcu/arch/m68k.h
+#usr/include/urcu/arch/mips.h
+#usr/include/urcu/arch/nios2.h
+#usr/include/urcu/arch/ppc.h
+#usr/include/urcu/arch/riscv.h
+#usr/include/urcu/arch/s390.h
+#usr/include/urcu/arch/sparc64.h
+#usr/include/urcu/arch/tile.h
+#usr/include/urcu/arch/x86.h
+#usr/include/urcu/call-rcu.h
+#usr/include/urcu/cds.h
+#usr/include/urcu/compiler.h
+#usr/include/urcu/config.h
+#usr/include/urcu/debug.h
+#usr/include/urcu/defer.h
+#usr/include/urcu/flavor.h
+#usr/include/urcu/futex.h
+#usr/include/urcu/hlist.h
+#usr/include/urcu/lfstack.h
+#usr/include/urcu/list.h
+#usr/include/urcu/map
+#usr/include/urcu/map/clear.h
+#usr/include/urcu/map/urcu-bp.h
+#usr/include/urcu/map/urcu-mb.h
+#usr/include/urcu/map/urcu-memb.h
+#usr/include/urcu/map/urcu-qsbr.h
+#usr/include/urcu/map/urcu-signal.h
+#usr/include/urcu/map/urcu.h
+#usr/include/urcu/pointer.h
+#usr/include/urcu/rcuhlist.h
+#usr/include/urcu/rculfhash.h
+#usr/include/urcu/rculfqueue.h
+#usr/include/urcu/rculfstack.h
+#usr/include/urcu/rculist.h
+#usr/include/urcu/ref.h
+#usr/include/urcu/static
+#usr/include/urcu/static/lfstack.h
+#usr/include/urcu/static/pointer.h
+#usr/include/urcu/static/rculfqueue.h
+#usr/include/urcu/static/rculfstack.h
+#usr/include/urcu/static/urcu-bp.h
+#usr/include/urcu/static/urcu-common.h
+#usr/include/urcu/static/urcu-mb.h
+#usr/include/urcu/static/urcu-memb.h
+#usr/include/urcu/static/urcu-qsbr.h
+#usr/include/urcu/static/urcu-signal-nr.h
+#usr/include/urcu/static/urcu-signal.h
+#usr/include/urcu/static/urcu.h
+#usr/include/urcu/static/wfcqueue.h
+#usr/include/urcu/static/wfqueue.h
+#usr/include/urcu/static/wfstack.h
+#usr/include/urcu/syscall-compat.h
+#usr/include/urcu/system.h
+#usr/include/urcu/tls-compat.h
+#usr/include/urcu/uatomic
+#usr/include/urcu/uatomic.h
+#usr/include/urcu/uatomic/aarch64.h
+#usr/include/urcu/uatomic/alpha.h
+#usr/include/urcu/uatomic/arm.h
+#usr/include/urcu/uatomic/gcc.h
+#usr/include/urcu/uatomic/generic.h
+#usr/include/urcu/uatomic/hppa.h
+#usr/include/urcu/uatomic/ia64.h
+#usr/include/urcu/uatomic/m68k.h
+#usr/include/urcu/uatomic/mips.h
+#usr/include/urcu/uatomic/nios2.h
+#usr/include/urcu/uatomic/ppc.h
+#usr/include/urcu/uatomic/riscv.h
+#usr/include/urcu/uatomic/s390.h
+#usr/include/urcu/uatomic/sparc64.h
+#usr/include/urcu/uatomic/tile.h
+#usr/include/urcu/uatomic/x86.h
+#usr/include/urcu/uatomic_arch.h
+#usr/include/urcu/urcu-bp.h
+#usr/include/urcu/urcu-futex.h
+#usr/include/urcu/urcu-mb.h
+#usr/include/urcu/urcu-memb.h
+#usr/include/urcu/urcu-qsbr.h
+#usr/include/urcu/urcu-signal.h
+#usr/include/urcu/urcu.h
+#usr/include/urcu/urcu_ref.h
+#usr/include/urcu/wfcqueue.h
+#usr/include/urcu/wfqueue.h
+#usr/include/urcu/wfstack.h
+#usr/lib/liburcu-bp.la
+#usr/lib/liburcu-bp.so
+#usr/lib/liburcu-bp.so.8
+#usr/lib/liburcu-bp.so.8.0.0
+#usr/lib/liburcu-cds.la
+#usr/lib/liburcu-cds.so
+#usr/lib/liburcu-cds.so.8
+#usr/lib/liburcu-cds.so.8.0.0
+#usr/lib/liburcu-common.la
+#usr/lib/liburcu-common.so
+#usr/lib/liburcu-common.so.8
+#usr/lib/liburcu-common.so.8.0.0
+#usr/lib/liburcu-mb.la
+#usr/lib/liburcu-mb.so
+#usr/lib/liburcu-mb.so.8
+#usr/lib/liburcu-mb.so.8.0.0
+#usr/lib/liburcu-memb.la
+#usr/lib/liburcu-memb.so
+#usr/lib/liburcu-memb.so.8
+#usr/lib/liburcu-memb.so.8.0.0
+#usr/lib/liburcu-qsbr.la
+#usr/lib/liburcu-qsbr.so
+#usr/lib/liburcu-qsbr.so.8
+#usr/lib/liburcu-qsbr.so.8.0.0
+#usr/lib/liburcu-signal.la
+#usr/lib/liburcu-signal.so
+#usr/lib/liburcu-signal.so.8
+#usr/lib/liburcu-signal.so.8.0.0
+#usr/lib/liburcu.la
+#usr/lib/liburcu.so
+#usr/lib/liburcu.so.8
+#usr/lib/liburcu.so.8.0.0
+#usr/lib/pkgconfig/liburcu-bp.pc
+#usr/lib/pkgconfig/liburcu-cds.pc
+#usr/lib/pkgconfig/liburcu-mb.pc
+#usr/lib/pkgconfig/liburcu-qsbr.pc
+#usr/lib/pkgconfig/liburcu-signal.pc
+#usr/lib/pkgconfig/liburcu.pc
+#usr/share/doc/userspace-rcu
+#usr/share/doc/userspace-rcu/LICENSE
+#usr/share/doc/userspace-rcu/README.md
+#usr/share/doc/userspace-rcu/cds-api.md
+#usr/share/doc/userspace-rcu/examples
+#usr/share/doc/userspace-rcu/examples/Makefile
+#usr/share/doc/userspace-rcu/examples/Makefile.examples.template
+#usr/share/doc/userspace-rcu/examples/hlist
+#usr/share/doc/userspace-rcu/examples/hlist/Makefile
+#usr/share/doc/userspace-rcu/examples/hlist/Makefile.cds_hlist_add_head_rcu
+#usr/share/doc/userspace-rcu/examples/hlist/Makefile.cds_hlist_del_rcu
+#usr/share/doc/userspace-rcu/examples/hlist/Makefile.cds_hlist_for_each_entry_rcu
+#usr/share/doc/userspace-rcu/examples/hlist/Makefile.cds_hlist_for_each_rcu
+#usr/share/doc/userspace-rcu/examples/hlist/cds_hlist_add_head_rcu.c
+#usr/share/doc/userspace-rcu/examples/hlist/cds_hlist_del_rcu.c
+#usr/share/doc/userspace-rcu/examples/hlist/cds_hlist_for_each_entry_rcu.c
+#usr/share/doc/userspace-rcu/examples/hlist/cds_hlist_for_each_rcu.c
+#usr/share/doc/userspace-rcu/examples/lfstack
+#usr/share/doc/userspace-rcu/examples/lfstack/Makefile
+#usr/share/doc/userspace-rcu/examples/lfstack/Makefile.cds_lfs_pop_all_blocking
+#usr/share/doc/userspace-rcu/examples/lfstack/Makefile.cds_lfs_pop_blocking
+#usr/share/doc/userspace-rcu/examples/lfstack/Makefile.cds_lfs_push
+#usr/share/doc/userspace-rcu/examples/lfstack/cds_lfs_pop_all_blocking.c
+#usr/share/doc/userspace-rcu/examples/lfstack/cds_lfs_pop_blocking.c
+#usr/share/doc/userspace-rcu/examples/lfstack/cds_lfs_push.c
+#usr/share/doc/userspace-rcu/examples/list
+#usr/share/doc/userspace-rcu/examples/list/Makefile
+#usr/share/doc/userspace-rcu/examples/list/Makefile.cds_list_add_rcu
+#usr/share/doc/userspace-rcu/examples/list/Makefile.cds_list_add_tail_rcu
+#usr/share/doc/userspace-rcu/examples/list/Makefile.cds_list_del_rcu
+#usr/share/doc/userspace-rcu/examples/list/Makefile.cds_list_for_each_entry_rcu
+#usr/share/doc/userspace-rcu/examples/list/Makefile.cds_list_for_each_rcu
+#usr/share/doc/userspace-rcu/examples/list/Makefile.cds_list_replace_rcu
+#usr/share/doc/userspace-rcu/examples/list/cds_list_add_rcu.c
+#usr/share/doc/userspace-rcu/examples/list/cds_list_add_tail_rcu.c
+#usr/share/doc/userspace-rcu/examples/list/cds_list_del_rcu.c
+#usr/share/doc/userspace-rcu/examples/list/cds_list_for_each_entry_rcu.c
+#usr/share/doc/userspace-rcu/examples/list/cds_list_for_each_rcu.c
+#usr/share/doc/userspace-rcu/examples/list/cds_list_replace_rcu.c
+#usr/share/doc/userspace-rcu/examples/rculfhash
+#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile
+#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_add
+#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_add_replace
+#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_add_unique
+#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_del
+#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_destroy
+#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_for_each_entry_duplicate
+#usr/share/doc/userspace-rcu/examples/rculfhash/Makefile.cds_lfht_lookup
+#usr/share/doc/userspace-rcu/examples/rculfhash/cds_lfht_add.c
+#usr/share/doc/userspace-rcu/examples/rculfhash/cds_lfht_add_replace.c
+#usr/share/doc/userspace-rcu/examples/rculfhash/cds_lfht_add_unique.c
+#usr/share/doc/userspace-rcu/examples/rculfhash/cds_lfht_del.c
+#usr/share/doc/userspace-rcu/examples/rculfhash/cds_lfht_destroy.c
+#usr/share/doc/userspace-rcu/examples/rculfhash/cds_lfht_for_each_entry_duplicate.c
+#usr/share/doc/userspace-rcu/examples/rculfhash/cds_lfht_lookup.c
+#usr/share/doc/userspace-rcu/examples/rculfhash/jhash.h
+#usr/share/doc/userspace-rcu/examples/rculfqueue
+#usr/share/doc/userspace-rcu/examples/rculfqueue/Makefile
+#usr/share/doc/userspace-rcu/examples/rculfqueue/Makefile.cds_lfq_dequeue
+#usr/share/doc/userspace-rcu/examples/rculfqueue/Makefile.cds_lfq_enqueue
+#usr/share/doc/userspace-rcu/examples/rculfqueue/cds_lfq_dequeue.c
+#usr/share/doc/userspace-rcu/examples/rculfqueue/cds_lfq_enqueue.c
+#usr/share/doc/userspace-rcu/examples/urcu-flavors
+#usr/share/doc/userspace-rcu/examples/urcu-flavors/Makefile
+#usr/share/doc/userspace-rcu/examples/urcu-flavors/Makefile.bp
+#usr/share/doc/userspace-rcu/examples/urcu-flavors/Makefile.mb
+#usr/share/doc/userspace-rcu/examples/urcu-flavors/Makefile.membarrier
+#usr/share/doc/userspace-rcu/examples/urcu-flavors/Makefile.qsbr
+#usr/share/doc/userspace-rcu/examples/urcu-flavors/Makefile.signal
+#usr/share/doc/userspace-rcu/examples/urcu-flavors/bp.c
+#usr/share/doc/userspace-rcu/examples/urcu-flavors/mb.c
+#usr/share/doc/userspace-rcu/examples/urcu-flavors/membarrier.c
+#usr/share/doc/userspace-rcu/examples/urcu-flavors/qsbr.c
+#usr/share/doc/userspace-rcu/examples/urcu-flavors/signal.c
+#usr/share/doc/userspace-rcu/examples/wfcqueue
+#usr/share/doc/userspace-rcu/examples/wfcqueue/Makefile
+#usr/share/doc/userspace-rcu/examples/wfcqueue/Makefile.cds_wfcq_dequeue
+#usr/share/doc/userspace-rcu/examples/wfcqueue/Makefile.cds_wfcq_enqueue
+#usr/share/doc/userspace-rcu/examples/wfcqueue/Makefile.cds_wfcq_splice
+#usr/share/doc/userspace-rcu/examples/wfcqueue/cds_wfcq_dequeue.c
+#usr/share/doc/userspace-rcu/examples/wfcqueue/cds_wfcq_enqueue.c
+#usr/share/doc/userspace-rcu/examples/wfcqueue/cds_wfcq_splice.c
+#usr/share/doc/userspace-rcu/examples/wfstack
+#usr/share/doc/userspace-rcu/examples/wfstack/Makefile
+#usr/share/doc/userspace-rcu/examples/wfstack/Makefile.cds_wfs_pop
+#usr/share/doc/userspace-rcu/examples/wfstack/Makefile.cds_wfs_pop_all_blocking
+#usr/share/doc/userspace-rcu/examples/wfstack/Makefile.cds_wfs_push
+#usr/share/doc/userspace-rcu/examples/wfstack/cds_wfs_pop.c
+#usr/share/doc/userspace-rcu/examples/wfstack/cds_wfs_pop_all_blocking.c
+#usr/share/doc/userspace-rcu/examples/wfstack/cds_wfs_push.c
+#usr/share/doc/userspace-rcu/rcu-api.md
+#usr/share/doc/userspace-rcu/solaris-build.md
+#usr/share/doc/userspace-rcu/uatomic-api.md
diff --git a/lfs/liburcu b/lfs/liburcu
new file mode 100644
index 000000000..0a21c0f21
--- /dev/null
+++ b/lfs/liburcu
@@ -0,0 +1,83 @@ 
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2018  IPFire Team  <info@ipfire.org>                     #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 0.13.0
+
+THISAPP    = userspace-rcu-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 8cb75dbb05774c03e66c63cb3186dd59
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist: 
+	@$(PAK)
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+	@$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+	@$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+	@$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+	@$(PREBUILD)
+	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+	cd $(DIR_APP) && ./configure \
+		            --prefix=/usr \
+		            --disable-static
+	cd $(DIR_APP) && make $(MAKETUNING)
+	cd $(DIR_APP) && make install
+	@rm -rf $(DIR_APP)
+	@$(POSTBUILD)
diff --git a/make.sh b/make.sh
index e6f948ba0..88f89c642 100755
--- a/make.sh
+++ b/make.sh
@@ -1280,6 +1280,7 @@  buildipfire() {
   lfsmake2 dosfstools
   lfsmake2 exfatprogs
   lfsmake2 reiserfsprogs
+  lfsmake2 liburcu
   lfsmake2 xfsprogs
   lfsmake2 sysfsutils
   lfsmake2 fuse