Dear Frederik,

Am Dienstag, den 21.09.2010, 07:17 +0200 schrieb Frederik Sdun:

[…]

> fso is quit untested with none GNU libcs and we partly depend on it. I
> wrote a short patch which add a --enable-no-gnuism switch for configure,
> but want to talk to Michael, before commiting it. Could you test it and
> report more gnuism in our code?

thank you for your patch. It partly reduced the problem. It now chokes
on `eventfd.h`. Unfortunately I do not know anything about if there are
any non glibc equivalents.

        […]
        | kobjectnotifier.c:188: warning: passing argument 2 of 'bind' from 
incompatible pointer type
        | 
/oe/build-minimal-uclibc/minimal-uclibc-dev/sysroots/armv7a-oe-linux-uclibceabi/usr/include/sys/socket.h:115:
 note: expected 'const struct sockaddr *' but argument is of type 'struct 
sockaddr_nl *'
        |   CC     libinitexit.lo
        |   CC     logger.lo
        |   CC     netlinknotifier.lo
        | netlinknotifier.c: In function 
'fso_framework_base_netlink_notifier_construct':
        | netlinknotifier.c:206: warning: passing argument 4 of 
'g_hash_table_new_full' from incompatible pointer type
        | 
/oe/build-minimal-uclibc/minimal-uclibc-dev/sysroots/armv7a-oe-linux-uclibceabi/usr/include/glib-2.0/glib/ghash.h:62:
 note: expected 'GDestroyNotify' but argument is of type 'void (*)(struct GList 
*)'
        | netlinknotifier.c: In function '_lambda0_':
        | netlinknotifier.c:260: warning: assignment discards qualifiers from 
pointer target type
        | netlinknotifier.c: In function 
'fso_framework_base_netlink_notifier_handleNetlinkMessage':
        | netlinknotifier.c:296: warning: assignment makes pointer from integer 
without a cast
        | netlinknotifier.c: In function 
'fso_framework_base_netlink_notifier_handleMessage':
        | netlinknotifier.c:344: warning: cast to pointer from integer of 
different size
        | netlinknotifier.c: In function 
'_fso_framework_base_netlink_notifier_addMatch':
        | netlinknotifier.c:366: warning: cast to pointer from integer of 
different size
        | netlinknotifier.c:372: warning: cast to pointer from integer of 
different size
        |   CC     netlinkutils.lo
        |   CC     overlay.lo
        |   CC     process.lo
        |   CC     smartkeyfile.lo
        |   CC     syncasync.lo
        |   CC     threading.lo
        | threading.c: In function 
'fso_framework_threading_callDelegateOnMainThread':
        | threading.c:451: warning: passing argument 4 of 'g_idle_add_full' 
from incompatible pointer type
        | 
/oe/build-minimal-uclibc/minimal-uclibc-dev/sysroots/armv7a-oe-linux-uclibceabi/usr/include/glib-2.0/glib/gmain.h:291:
 note: expected 'GDestroyNotify' but argument is of type 'void (*)(struct 
Block3Data *)'
        | threading.c:455: warning: passing argument 4 of 'g_idle_add_full' 
from incompatible pointer type
        | 
/oe/build-minimal-uclibc/minimal-uclibc-dev/sysroots/armv7a-oe-linux-uclibceabi/usr/include/glib-2.0/glib/gmain.h:291:
 note: expected 'GDestroyNotify' but argument is of type 'void (*)(struct 
Block3Data *)'
        | threading.c:458: warning: passing argument 4 of 'g_idle_add_full' 
from incompatible pointer type
        | 
/oe/build-minimal-uclibc/minimal-uclibc-dev/sysroots/armv7a-oe-linux-uclibceabi/usr/include/glib-2.0/glib/gmain.h:291:
 note: expected 'GDestroyNotify' but argument is of type 'void (*)(struct 
Block3Data *)'
        |   CC     types.lo
        |   CC     utilities.lo
        | utilities.c:35:25: error: sys/eventfd.h: No such file or directory
        | make[3]: *** [utilities.lo] Error 1
        | make[3]: Leaving directory 
`/oe/build-minimal-uclibc/minimal-uclibc-dev/work/armv7a-oe-linux-uclibceabi/libfsobasics-1_0.9.10+gitr0+2f8221fea7c667d2ee46ff6b8dace2d53b8860cc-r2.0/git/libfsobasics/fsobasics'
        | make[2]: *** [all] Error 2
        | make[2]: Leaving directory 
`/oe/build-minimal-uclibc/minimal-uclibc-dev/work/armv7a-oe-linux-uclibceabi/libfsobasics-1_0.9.10+gitr0+2f8221fea7c667d2ee46ff6b8dace2d53b8860cc-r2.0/git/libfsobasics/fsobasics'
        | make[1]: *** [all-recursive] Error 1
        | make[1]: Leaving directory 
`/oe/build-minimal-uclibc/minimal-uclibc-dev/work/armv7a-oe-linux-uclibceabi/libfsobasics-1_0.9.10+gitr0+2f8221fea7c667d2ee46ff6b8dace2d53b8860cc-r2.0/git/libfsobasics'
        | make: *** [all] Error 2
        | FATAL: oe_runmake failed
        | ERROR: Function do_compile failed

I am attaching the patch file to include your patch into OE easily for testing.


Thanks,

Paul
From 6b7dc740f29e5f2db5b7b971fb403a8d29cb53a1 Mon Sep 17 00:00:00 2001
From: Paul Menzel <[email protected]>
Date: Tue, 21 Sep 2010 10:58:20 +0200
Subject: [PATCH] libfsobascis_git.bb: Add patch to compile with uClibc.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

uClibc does not provide `execinfo.h`, which is a “GNUism” [1].

Applying this patch from Frederik Sdun [1] and passing `--enable-no-gnuism` to configure when compiling with uClibc lets `libfsobasics_git.bb` build with uClibc.

I just compile tested this and it solves the `execinfo.h` error. Now it fails with `eventfd.h`.

[1] http://lists.linuxtogo.org/pipermail/openembedded-devel/2010-September/024411.html

Signed-off-by: Paul Menzel <[email protected]>
---
 recipes/freesmartphone/libfsobasics/nognuism.patch |   54 ++++++++++++++++++++
 recipes/freesmartphone/libfsobasics_git.bb         |    6 ++-
 2 files changed, 59 insertions(+), 1 deletions(-)
 create mode 100644 recipes/freesmartphone/libfsobasics/nognuism.patch

diff --git a/recipes/freesmartphone/libfsobasics/nognuism.patch b/recipes/freesmartphone/libfsobasics/nognuism.patch
new file mode 100644
index 0000000..455b76e
--- /dev/null
+++ b/recipes/freesmartphone/libfsobasics/nognuism.patch
@@ -0,0 +1,54 @@
+diff --git a/libfsobasics/configure.ac b/libfsobasics/configure.ac
+index ba06907..d9d4172 100644
+--- a/libfsobasics/configure.ac
++++ b/libfsobasics/configure.ac
+@@ -48,6 +48,12 @@ AC_ARG_ENABLE(debug,
+   [debug="no"])
+ AM_CONDITIONAL( [WANT_DEBUG], [test x"$debug" = x"yes"])
+ 
++AC_ARG_ENABLE(no_gnuism,
++  [  --enable-no-gnuism        Enable build for none GNU-libc (default=disabled)],
++  [no_gnuism=$enableval],
++  [no_gnuism="no"])
++AM_CONDITIONAL( [WANT_NO_GNUISM], [test x"$no_gnuism" = x"yes"])
++
+ # git version
+ GITV=`cat ../.git/refs/heads/master || echo "unknown"`
+ AC_DEFINE_UNQUOTED([PACKAGE_GITV], ["${GITV}"], [git version])
+diff --git a/libfsobasics/fsobasics/Makefile.am b/libfsobasics/fsobasics/Makefile.am
+index 66a7cd7..0fc534a 100644
+--- a/libfsobasics/fsobasics/Makefile.am
++++ b/libfsobasics/fsobasics/Makefile.am
+@@ -23,6 +23,10 @@ VALAC_ARGS += -g -D DEBUG
+ AM_CFLAGS += -ggdb -O0
+ endif
+ 
++if WANT_NO_GNUISM
++VALAC_ARGS += -D NO_GNUISM
++endif
++
+ BUILT_SOURCES = fsobasics.vala.stamp
+ 
+ lib_LTLIBRARIES = \
+diff --git a/libfsobasics/fsobasics/utilities.vala b/libfsobasics/fsobasics/utilities.vala
+index 22d107d..6ed5fc8 100644
+--- a/libfsobasics/fsobasics/utilities.vala
++++ b/libfsobasics/fsobasics/utilities.vala
+@@ -420,6 +420,9 @@ namespace FsoFramework { namespace Utility {
+     public string[] createBacktrace()
+     {
+         string[] result = new string[] { };
++#if NO_GNUISM
++        result += "Backtrace not support for none GNU libcs";
++#else
+         void* buffer = malloc0( BACKTRACE_SIZE * sizeof(string) );
+         var size = Linux.backtrace( buffer, BACKTRACE_SIZE );
+         string[] symbols = Linux.backtrace_symbols( buffer, size );
+@@ -429,6 +432,7 @@ namespace FsoFramework { namespace Utility {
+             result += "%s\n".printf( symbols[i] );
+         }
+         result += "--- END BACKTRACE ---\n";
++#endif
+         return result;
+     }
+ 
diff --git a/recipes/freesmartphone/libfsobasics_git.bb b/recipes/freesmartphone/libfsobasics_git.bb
index 42b2ed7..018e0d2 100644
--- a/recipes/freesmartphone/libfsobasics_git.bb
+++ b/recipes/freesmartphone/libfsobasics_git.bb
@@ -5,4 +5,8 @@ DEPENDS += "libnl2"
 SRCREV = "${FSO_CORNUCOPIA_SRCREV}"
 PV = "0.9.10+gitr${SRCPV}"
 PE = "1"
-PR = "${INC_PR}.0"
+PR = "${INC_PR}.1"
+
+SRC_URI += "file://nognuism.patch;striplevel=2"
+
+EXTRA_OECONF_append_uclinux-uclibc = " --enable-no-gnuism"
-- 
1.7.1

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Openembedded-devel mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel

Reply via email to