Project import
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8ef692e --- /dev/null +++ b/Makefile
@@ -0,0 +1,122 @@ +# +# Copyright (c) 2010-2015 Nest, Inc. +# All rights reserved. +# +# This document is the property of Nest. It is considered +# confidential and proprietary information. +# +# This document may not be reproduced or transmitted in any form, +# in whole or in part, without the express written permission of +# Nest. +# +# Description: +# This file is the make file for Userspace Read Copy Update +# library (liburcu). +# + +BuildConfigSpecialized := No +BuildProductSpecialized := No + +include pre.mak + +PackageName := userspace-rcu + +PackageExtension := tar.bz2 +PackageSeparator := - + +PackagePatchArgs := -p1 + +PackageArchive := $(PackageName).$(PackageExtension) +PackageSourceDir := $(PackageName)$(PackageSeparator)$(PackageVersion) + +PackageBuildMakefile = $(call GenerateBuildPaths,Makefile) + +CleanPaths += $(PackageLicenseFile) + +all: $(PackageDefaultGoal) + +# Generate the package license contents. + +$(PackageSourceDir)/LICENSE: source + +$(PackageLicenseFile): $(PackageSourceDir)/LICENSE + $(copy-result) + +# Extract the source from the archive and apply patches, if any. + +$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths) + $(expand-and-patch-package) + +# Prepare the sources. + +.PHONY: source +source: | $(PackageSourceDir) + +# Patch the sources, if necessary. + +.PHONY: patch +patch: source + +# Generate the package build makefile. + +$(PackageBuildMakefile): | $(PackageSourceDir) $(BuildDirectory) $(ResultDirectory) + $(Verbose)cd $(BuildDirectory) && \ + $(CURDIR)/$(PackageSourceDir)/configure \ + CC="$(CC)" CXX="$(CXX)" AR=$(AR) NM=$(NM) RANLIB=$(RANLIB) STRIP=$(STRIP) \ + INSTALL="$(INSTALL) $(INSTALLFLAGS)" \ + CFLAGS="$(call ToolAssertMachineFlag,arch=armv7-a)" \ + --build=$(HostTuple) \ + --host=$(TargetTuple) \ + --target=$(TargetTuple) \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + ac_cv_func_malloc_0_nonnull=yes \ + --disable-static + +# Configure the source for building. + +.PHONY: configure +configure: source $(PackageBuildMakefile) + +# Build the source. +# +# We have to unset MAKEFLAGS since they confuse the package build otherwise. + +.PHONY: build +build: configure + $(Verbose)unset MAKEFLAGS && \ + $(MAKE) $(JOBSFLAG) -C $(BuildDirectory) all + +# Stage the build to a temporary installation area. +# +# We have to unset MAKEFLAGS since they confuse the package build otherwise. +# +# We explictly remove 'libfoo.la' because some packages that depend on +# these libraries use libtool. If libtool finds a 'libfoo.la' file for +# a library, it uses the value of 'libdir=<dir>' it finds. In our +# case, since '--prefix=/usr' this value is '/usr/lib'. It then +# resolves '-lfoo'. In a cross-compilation environment, this is likely +# to be neither the right architecture nor the right version to link +# against. In short, we lose. +# +# We could also handle this by removing DESTDIR and setting the prefix +# to $(ResultDirectory); however, that results in libtool hard-coding +# $(ResultDirectory) as the RPATH in the linked executables which is +# NOT what we want either. We lose again. +# +# By removing the '*.la' file, we win by ensuring neither a misdirected +# link nor an RPATH. + +.PHONY: stage +stage: build | $(ResultDirectory) + $(Verbose)unset MAKEFLAGS && \ + $(MAKE) $(JOBSFLAG) -C $(BuildDirectory) DESTDIR=$(ResultDirectory) install + $(Verbose)$(RM) $(RMFLAGS) $(call GenerateResultPaths,,$(addprefix usr/lib/,liburcu-bp.la liburcu-cds.la liburcu.la liburcu-common.la liburcu-mb.la liburcu-qsbr.la liburcu-signal.la)) + +clean: + $(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir) + $(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory) + $(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory) + +include post.mak
diff --git a/userspace-rcu.patches/userspace-rcu-50.description b/userspace-rcu.patches/userspace-rcu-50.description new file mode 100644 index 0000000..7728cf7 --- /dev/null +++ b/userspace-rcu.patches/userspace-rcu-50.description
@@ -0,0 +1 @@ +The new Poky 4.8.2 toolchain has fix (https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=204665) in it. So removing the checks from urcu.
diff --git a/userspace-rcu.patches/userspace-rcu-50.patch b/userspace-rcu.patches/userspace-rcu-50.patch new file mode 100644 index 0000000..01df074 --- /dev/null +++ b/userspace-rcu.patches/userspace-rcu-50.patch
@@ -0,0 +1,27 @@ +diff -aruN a/urcu/compiler.h b/urcu/compiler.h +--- a/urcu/compiler.h 2015-08-27 13:16:02.181943077 -0700 ++++ b/urcu/compiler.h 2015-08-27 13:16:45.781409041 -0700 +@@ -108,23 +108,4 @@ + + #define CAA_ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) + +-/* +- * Don't allow compiling with buggy compiler. +- */ +- +-#ifdef __GNUC__ +-# define URCU_GCC_VERSION (__GNUC__ * 10000 \ +- + __GNUC_MINOR__ * 100 \ +- + __GNUC_PATCHLEVEL__) +- +-/* +- * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854 +- */ +-# ifdef __ARMEL__ +-# if URCU_GCC_VERSION >= 40800 && URCU_GCC_VERSION <= 40802 +-# error Your gcc version produces clobbered frame accesses +-# endif +-# endif +-#endif +- + #endif /* _URCU_COMPILER_H */
diff --git a/userspace-rcu.tar.bz2 b/userspace-rcu.tar.bz2 new file mode 100644 index 0000000..90fc64e --- /dev/null +++ b/userspace-rcu.tar.bz2 Binary files differ
diff --git a/userspace-rcu.url b/userspace-rcu.url new file mode 100644 index 0000000..ff29217 --- /dev/null +++ b/userspace-rcu.url
@@ -0,0 +1 @@ +http://lttng.org/files/urcu/userspace-rcu-0.8.7.tar.bz2
diff --git a/userspace-rcu.version b/userspace-rcu.version new file mode 100644 index 0000000..1e9b46b --- /dev/null +++ b/userspace-rcu.version
@@ -0,0 +1 @@ +0.8.7