[oe] [PATCH v3] uclibc++: moved to git head

Frans Meulenbroeks fransmeulenbroeks at gmail.com
Mon Nov 22 21:18:24 UTC 2010


2010/11/22 Khem Raj <raj.khem at gmail.com>:
> On Mon, Nov 22, 2010 at 11:53 AM, Frans Meulenbroeks
> <fransmeulenbroeks at gmail.com> wrote:
>> Removed the 0.1.9 version as it is quite old and does not compile
>> renamed files dir to uclibc++
>> added patches to get things compiling.
>> Patches are gracefully picked from openwrt
>> (https://dev.openwrt.org/browser/packages/libs/uclibc%2B%2B/patches?rev=24017)
>>
>> note that it was decided to move to git head instead of the latest release (0.2.2)
>> because there were quite some patches after 0.2.2 was made and it does not look like there will
>> be a new release soon (there is hardly any activity last 2 years or so).
>>
>> Signed-off-by: Frans Meulenbroeks <fransmeulenbroeks at gmail.com>
>
> looks ok, It would be good if you were more precise on the license versions

Oops. I'm sure I changed it but guess that was lost somewhere
it is LGPLv2+. Changed it. Will make sure it is in the patch when I push it.

Frans

>
> Acked-by: Khem Raj <raj.khem at gmail.com>
>
>
>> ---
>>
>> moved to latest git version
>> this also eliminated some patches that are now upstream
>>
>>  recipes/uclibc++/files/defconfig             |   64 --------------------------
>>  recipes/uclibc++/files/nobash.patch          |   13 -----
>>  recipes/uclibc++/uclibc++/006-eabi_fix.patch |   42 +++++++++++++++++
>>  recipes/uclibc++/uclibc++/defconfig          |   53 +++++++++++++++++++++
>>  recipes/uclibc++/uclibc++_0.1.9.bb           |   54 ----------------------
>>  recipes/uclibc++/uclibc++_git.bb             |   47 +++++++++++++++++++
>>  6 files changed, 142 insertions(+), 131 deletions(-)
>>  delete mode 100644 recipes/uclibc++/files/defconfig
>>  delete mode 100644 recipes/uclibc++/files/nobash.patch
>>  create mode 100644 recipes/uclibc++/uclibc++/006-eabi_fix.patch
>>  create mode 100644 recipes/uclibc++/uclibc++/defconfig
>>  delete mode 100644 recipes/uclibc++/uclibc++_0.1.9.bb
>>  create mode 100644 recipes/uclibc++/uclibc++_git.bb
>>
>> diff --git a/recipes/uclibc++/files/defconfig b/recipes/uclibc++/files/defconfig
>> deleted file mode 100644
>> index 19b4aa5..0000000
>> --- a/recipes/uclibc++/files/defconfig
>> +++ /dev/null
>> @@ -1,64 +0,0 @@
>> -#
>> -# Automatically generated make config: don't edit
>> -#
>> -# TARGET_arm is not set
>> -TARGET_i386=y
>> -# TARGET_powerpc is not set
>> -
>> -#
>> -# Target Architecture Features and Options
>> -#
>> -HAVE_ELF=y
>> -TARGET_ARCH="i386"
>> -# CONFIG_GENERIC_386 is not set
>> -# CONFIG_386 is not set
>> -# CONFIG_486 is not set
>> -# CONFIG_586 is not set
>> -# CONFIG_586MMX is not set
>> -# CONFIG_686 is not set
>> -# CONFIG_PENTIUMIII is not set
>> -CONFIG_PENTIUM4=y
>> -# CONFIG_K6 is not set
>> -# CONFIG_K7 is not set
>> -# CONFIG_CRUSOE is not set
>> -# CONFIG_WINCHIPC6 is not set
>> -# CONFIG_WINCHIP2 is not set
>> -# CONFIG_CYRIXIII is not set
>> -ARCH_LITTLE_ENDIAN=y
>> -# ARCH_BIG_ENDIAN is not set
>> -UCLIBCXX_HAS_FLOATS=y
>> -WARNINGS="-Wall"
>> -HAVE_DOT_CONFIG=y
>> -
>> -#
>> -# String and I/O Stream Support
>> -#
>> -# UCLIBCXX_HAS_WCHAR is not set
>> -UCLIBCXX_IOSTREAM_BUFSIZE=32
>> -UCLIBCXX_HAS_LFS=y
>> -UCLIBCXX_SUPPORT_CDIR=y
>> -UCLIBCXX_SUPPORT_CIN=y
>> -UCLIBCXX_SUPPORT_COUT=y
>> -UCLIBCXX_SUPPORT_CERR=y
>> -
>> -#
>> -# STL and Code Expansion
>> -#
>> -UCLIBCXX_STL_BUFFER_SIZE=32
>> -UCLIBCXX_CODE_EXPANSION=y
>> -UCLIBCXX_EXPAND_STRING_CHAR=y
>> -UCLIBCXX_EXPAND_VECTOR_BASIC=y
>> -UCLIBCXX_EXPAND_ISTREAM_CHAR=y
>> -UCLIBCXX_EXPAND_OSTREAM_CHAR=y
>> -UCLIBCXX_EXPAND_FSTREAM_CHAR=y
>> -
>> -#
>> -# Library Installation Options
>> -#
>> -UCLIBCXX_RUNTIME_PREFIX="/usr/$(TARGET_ARCH)-linux-uclibc"
>> -UCLIBCXX_RUNTIME_INCLUDE_SUBDIR="/include"
>> -UCLIBCXX_RUNTIME_LIB_SUBDIR="/lib"
>> -UCLIBCXX_RUNTIME_BIN_SUBDIR="/bin"
>> -UCLIBCXX_EXCEPTION_SUPPORT=y
>> -IMPORT_LIBSUP=y
>> -# DODEBUG is not set
>> diff --git a/recipes/uclibc++/files/nobash.patch b/recipes/uclibc++/files/nobash.patch
>> deleted file mode 100644
>> index 657c47b..0000000
>> --- a/recipes/uclibc++/files/nobash.patch
>> +++ /dev/null
>> @@ -1,13 +0,0 @@
>> -Index: uClibc++/bin/Makefile
>> -===================================================================
>> ---- uClibc++.orig/bin/Makefile 2005-01-18 12:22:26.000000000 -0500
>> -+++ uClibc++/bin/Makefile      2005-03-10 18:19:30.799531304 -0500
>> -@@ -26,7 +26,7 @@
>> -       $(INSTALL) -m 755 $(WRAPPER) $(PREFIX)$(UCLIBCXX_RUNTIME_PREFIX)$(UCLIBCXX_RUNTIME_BIN_SUBDIR)
>> -
>> - $(WRAPPER):
>> --      echo "#!/bin/bash" > $(WRAPPER)
>> -+      echo "#!/bin/sh" > $(WRAPPER)
>> -       echo "" >> $(WRAPPER)
>> -       echo "OPTIONS=\"$(INITIALOPTIONS)\"" >> $(WRAPPER)
>> -       echo 'INCLIB="Y"' >> $(WRAPPER)
>> diff --git a/recipes/uclibc++/uclibc++/006-eabi_fix.patch b/recipes/uclibc++/uclibc++/006-eabi_fix.patch
>> new file mode 100644
>> index 0000000..bc970a7
>> --- /dev/null
>> +++ b/recipes/uclibc++/uclibc++/006-eabi_fix.patch
>> @@ -0,0 +1,42 @@
>> +Index: uClibc++-0.2.2/include/typeinfo
>> +===================================================================
>> +--- uClibc++-0.2.2.orig/include/typeinfo       2008-02-13 00:37:04.000000000 +0100
>> ++++ uClibc++-0.2.2/include/typeinfo    2008-02-13 00:37:34.000000000 +0100
>> +@@ -44,6 +44,7 @@
>> +   class __class_type_info;
>> + } // namespace __cxxabiv1
>> +
>> ++#ifndef __GXX_MERGED_TYPEINFO_NAMES
>> + #if !__GXX_WEAK__
>> +   // If weak symbols are not supported, typeinfo names are not merged.
>> +   #define __GXX_MERGED_TYPEINFO_NAMES 0
>> +@@ -51,6 +52,7 @@
>> +   // On platforms that support weak symbols, typeinfo names are merged.
>> +   #define __GXX_MERGED_TYPEINFO_NAMES 1
>> + #endif
>> ++#endif
>> +
>> + namespace std
>> + {
>> +Index: uClibc++-0.2.2/include/unwind-cxx.h
>> +===================================================================
>> +--- uClibc++-0.2.2.orig/include/unwind-cxx.h   2008-02-13 00:38:04.000000000 +0100
>> ++++ uClibc++-0.2.2/include/unwind-cxx.h        2008-02-13 00:40:32.000000000 +0100
>> +@@ -135,6 +135,7 @@
>> +
>> + // This is the exception class we report -- "GNUCC++\0".
>> + const _Unwind_Exception_Class __gxx_exception_class
>> ++#ifndef __ARM_EABI_UNWINDER__
>> + = ((((((((_Unwind_Exception_Class) 'G'
>> +        << 8 | (_Unwind_Exception_Class) 'N')
>> +       << 8 | (_Unwind_Exception_Class) 'U')
>> +@@ -143,6 +144,9 @@
>> +      << 8 | (_Unwind_Exception_Class) '+')
>> +     << 8 | (_Unwind_Exception_Class) '+')
>> +    << 8 | (_Unwind_Exception_Class) '\0');
>> ++#else
>> ++= "GNUC++";
>> ++#endif
>> +
>> + // GNU C++ personality routine, Version 0.
>> + extern "C" _Unwind_Reason_Code __gxx_personality_v0
>> diff --git a/recipes/uclibc++/uclibc++/defconfig b/recipes/uclibc++/uclibc++/defconfig
>> new file mode 100644
>> index 0000000..168e9a4
>> --- /dev/null
>> +++ b/recipes/uclibc++/uclibc++/defconfig
>> @@ -0,0 +1,53 @@
>> +#
>> +# Automatically generated make config: don't edit
>> +#
>> +
>> +#
>> +# Target Features and Options
>> +#
>> +# UCLIBCXX_HAS_FLOATS is not set
>> +UCLIBCXX_HAS_TLS=y
>> +WARNINGS="-Wall"
>> +BUILD_EXTRA_LIBRARIES=""
>> +HAVE_DOT_CONFIG=y
>> +
>> +#
>> +# String and I/O Stream Support
>> +#
>> +# UCLIBCXX_HAS_WCHAR is not set
>> +UCLIBCXX_IOSTREAM_BUFSIZE=32
>> +UCLIBCXX_HAS_LFS=y
>> +UCLIBCXX_SUPPORT_CDIR=y
>> +UCLIBCXX_SUPPORT_CIN=y
>> +UCLIBCXX_SUPPORT_COUT=y
>> +UCLIBCXX_SUPPORT_CERR=y
>> +# UCLIBCXX_SUPPORT_CLOG is not set
>> +
>> +#
>> +# STL and Code Expansion
>> +#
>> +UCLIBCXX_STL_BUFFER_SIZE=32
>> +UCLIBCXX_CODE_EXPANSION=y
>> +UCLIBCXX_EXPAND_CONSTRUCTORS_DESTRUCTORS=y
>> +UCLIBCXX_EXPAND_STRING_CHAR=y
>> +UCLIBCXX_EXPAND_VECTOR_BASIC=y
>> +UCLIBCXX_EXPAND_IOS_CHAR=y
>> +UCLIBCXX_EXPAND_STREAMBUF_CHAR=y
>> +UCLIBCXX_EXPAND_ISTREAM_CHAR=y
>> +UCLIBCXX_EXPAND_OSTREAM_CHAR=y
>> +UCLIBCXX_EXPAND_FSTREAM_CHAR=y
>> +UCLIBCXX_EXPAND_SSTREAM_CHAR=y
>> +
>> +#
>> +# Library Installation Options
>> +#
>> +UCLIBCXX_RUNTIME_PREFIX="/usr/uClibc++"
>> +UCLIBCXX_RUNTIME_INCLUDE_SUBDIR="/include"
>> +UCLIBCXX_RUNTIME_LIB_SUBDIR="/lib"
>> +UCLIBCXX_RUNTIME_BIN_SUBDIR="/bin"
>> +UCLIBCXX_EXCEPTION_SUPPORT=y
>> +IMPORT_LIBSUP=y
>> +IMPORT_LIBGCC_EH=y
>> +BUILD_STATIC_LIB=y
>> +# BUILD_ONLY_STATIC_LIB is not set
>> +# DODEBUG is not set
>> diff --git a/recipes/uclibc++/uclibc++_0.1.9.bb b/recipes/uclibc++/uclibc++_0.1.9.bb
>> deleted file mode 100644
>> index be1ac14..0000000
>> --- a/recipes/uclibc++/uclibc++_0.1.9.bb
>> +++ /dev/null
>> @@ -1,54 +0,0 @@
>> -DESCRIPTION = "A C++ standard library targeted towards the embedded \
>> -systems/software market."
>> -HOMEPAGE = "http://cxx.uclibc.org/"
>> -LICENSE = "LGPL"
>> -PRIORITY = "optional"
>> -SECTION = "libs"
>> -
>> -PR = "r2"
>> -
>> -SRC_URI = "http://cxx.uclibc.org/src/uClibc++-${PV}.tbz2 \
>> -          file://nobash.patch \
>> -          file://defconfig"
>> -S = "${WORKDIR}/uClibc++"
>> -
>> -# uClibc++ runtime prefix directory (UCLIBCXX_RUNTIME_PREFIX) [/usr/$(TARGET_ARCH)-linux-uclibc] (NEW)
>> -# uClibc++ header file subdirectory (UCLIBCXX_RUNTIME_INCLUDE_SUBDIR) [/include] (NEW)
>> -# uClibc++ library subdirectory (UCLIBCXX_RUNTIME_LIB_SUBDIR) [/lib] (NEW)
>> -# uClibc++ application file subdirectory (UCLIBCXX_RUNTIME_BIN_SUBDIR) [/bin] (NEW)
>> -
>> -do_unpack_real () {
>> -       bzcat uClibc++-${PV}.tbz2 | tar -xvf -
>> -}
>> -do_unpack_real[dirs] = "${WORKDIR}"
>> -addtask unpack_real before do_patch after do_unpack
>> -
>> -EXTRA_OEMAKE = "'OPTIMIZATION=' 'XWARNINGS=' 'XARCH_CFLAGS=${CFLAGS}' \
>> -               'CPU_FLAGS=' 'STRIPTOOL=true' 'LD=${LD}'"
>> -configmangle = 's,^UCLIBCXX_RUNTIME_PREFIX=.*,UCLIBCXX_RUNTIME_PREFIX="${exec_prefix}",; \
>> -               s,^UCLIBCXX_RUNTIME_INCLUDE_SUBDIR=.*,UCLIBCXX_RUNTIME_INCLUDE_SUBDIR="/include/c++-uc",; \
>> -               s,^UCLIBCXX_RUNTIME_LIB_SUBDIR=.*,UCLIBCXX_RUNTIME_LIB_SUBDIR="/lib",; \
>> -               s,^UCLIBCXX_RUNTIME_BIN_SUBDIR=.*,UCLIBCXX_RUNTIME_BIN_SUBDIR="/bin",;'
>> -PARALLEL_MAKE = ""
>> -
>> -do_configure () {
>> -       cp ${WORKDIR}/defconfig ${S}/.config
>> -
>> -       perl -i -p -e 's,^CROSS=.*,TARGET_ARCH=${TARGET_ARCH}\nCROSS=${TARGET_PREFIX},g' ${S}/Rules.mak
>> -       perl -i -p -e '${configmangle}' ${S}/.config
>> -
>> -       oe_runmake oldconfig
>> -}
>> -
>> -do_install () {
>> -       oe_runmake 'DESTDIR=${D}' install
>> -       chmod +x ${D}${libdir}/libuClibc++.so.*
>> -}
>> -
>> -PACKAGES = "g++-uc libuclibc++ libuclibc++-dev"
>> -FILES_g++-uc = "${bindir}/g++-uc"
>> -FILES_libuclibc++ = "${libdir}/*.so.*"
>> -FILES_libuclibc++-dev = "${FILES_uclibc++-dev}"
>> -
>> -SRC_URI[md5sum] = "ebf58e04d72eab5c131c2c9118737024"
>> -SRC_URI[sha256sum] = "82342a5d6088421e79699dd7af614ebecf6dd335eabce07690902a379f5ea8de"
>> diff --git a/recipes/uclibc++/uclibc++_git.bb b/recipes/uclibc++/uclibc++_git.bb
>> new file mode 100644
>> index 0000000..5b0d374
>> --- /dev/null
>> +++ b/recipes/uclibc++/uclibc++_git.bb
>> @@ -0,0 +1,47 @@
>> +DESCRIPTION = "A C++ standard library targeted towards the embedded \
>> +systems/software market."
>> +HOMEPAGE = "http://cxx.uclibc.org/"
>> +LICENSE = "LGPL"
>> +PRIORITY = "optional"
>> +SECTION = "libs"
>> +
>> +PR = "r0"
>> +
>> +SRCREV = "7efcc107b6bf7a59a85beaf7c7f35da6de0f321e"
>> +
>> +SRC_URI = "git://git.busybox.net/uClibc++;protocol=git \
>> +          file://006-eabi_fix.patch \
>> +          file://defconfig"
>> +S = "${WORKDIR}/git"
>> +
>> +# uClibc++ runtime prefix directory (UCLIBCXX_RUNTIME_PREFIX) [/usr/$(TARGET_ARCH)-linux-uclibc] (NEW)
>> +# uClibc++ header file subdirectory (UCLIBCXX_RUNTIME_INCLUDE_SUBDIR) [/include] (NEW)
>> +# uClibc++ library subdirectory (UCLIBCXX_RUNTIME_LIB_SUBDIR) [/lib] (NEW)
>> +# uClibc++ application file subdirectory (UCLIBCXX_RUNTIME_BIN_SUBDIR) [/bin] (NEW)
>> +
>> +EXTRA_OEMAKE = "'OPTIMIZATION=' 'XWARNINGS=' 'XARCH_CFLAGS=${CFLAGS}' \
>> +               'CPU_FLAGS=' 'STRIPTOOL=true' 'LD=${LD}'"
>> +configmangle = 's,^UCLIBCXX_RUNTIME_PREFIX=.*,UCLIBCXX_RUNTIME_PREFIX="${exec_prefix}",; \
>> +               s,^UCLIBCXX_RUNTIME_INCLUDE_SUBDIR=.*,UCLIBCXX_RUNTIME_INCLUDE_SUBDIR="/include/c++-uc",; \
>> +               s,^UCLIBCXX_RUNTIME_LIB_SUBDIR=.*,UCLIBCXX_RUNTIME_LIB_SUBDIR="/lib",; \
>> +               s,^UCLIBCXX_RUNTIME_BIN_SUBDIR=.*,UCLIBCXX_RUNTIME_BIN_SUBDIR="/bin",;'
>> +PARALLEL_MAKE = ""
>> +
>> +do_configure () {
>> +       cp ${WORKDIR}/defconfig ${S}/.config
>> +
>> +       perl -i -p -e 's,^CROSS=.*,TARGET_ARCH=${TARGET_ARCH}\nCROSS=${TARGET_PREFIX},g' ${S}/Rules.mak
>> +       perl -i -p -e '${configmangle}' ${S}/.config
>> +
>> +       oe_runmake oldconfig
>> +}
>> +
>> +do_install () {
>> +       oe_runmake 'DESTDIR=${D}' install
>> +       chmod +x ${D}${libdir}/libuClibc++.so.*
>> +}
>> +
>> +PACKAGES = "g++-uc libuclibc++ libuclibc++-dev"
>> +FILES_g++-uc = "${bindir}/g++-uc"
>> +FILES_libuclibc++ = "${libdir}/*.so.*"
>> +FILES_libuclibc++-dev = "${FILES_uclibc++-dev}"
>> --
>> 1.6.4.2
>>
>>
>> _______________________________________________
>> Openembedded-devel mailing list
>> Openembedded-devel at lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>




More information about the Openembedded-devel mailing list