pacemaker: fix headers define extraction and uclibc build
authorRoman I Khimov <khimov@altell.ru>
Wed, 7 Apr 2010 15:44:50 +0000 (19:44 +0400)
committerRoman I Khimov <khimov@altell.ru>
Thu, 8 Apr 2010 20:33:19 +0000 (00:33 +0400)
Header define extraction routine tries to execute test binary which
may or may not work depending on target architecture. Redo it using
preprocessor only.

Fix uclibc build also, doesn't link properly without fstack-protector.

Signed-off-by: Roman I Khimov <khimov@altell.ru>
recipes/pacemaker/pacemaker-1.0.8/fix-header-defs-lookup.patch [new file with mode: 0644]
recipes/pacemaker/pacemaker_1.0.8.bb

diff --git a/recipes/pacemaker/pacemaker-1.0.8/fix-header-defs-lookup.patch b/recipes/pacemaker/pacemaker-1.0.8/fix-header-defs-lookup.patch
new file mode 100644 (file)
index 0000000..02ce26e
--- /dev/null
@@ -0,0 +1,16 @@
+Index: Pacemaker-1-0-Pacemaker-1.0.8/configure.ac
+===================================================================
+--- Pacemaker-1-0-Pacemaker-1.0.8.orig/configure.ac    2010-04-06 13:08:53.000000000 +0400
++++ Pacemaker-1-0-Pacemaker-1.0.8/configure.ac 2010-04-06 13:08:58.000000000 +0400
+@@ -106,9 +106,8 @@
+         Cfile=/tmp/extract_define.$2.${$}
+         printf "#include <stdio.h>\n" > ${Cfile}.c
+         printf "#include <%s>\n" $1 >> ${Cfile}.c
+-        printf "int main(int argc, char **argv) { printf(\"%%s\", %s); return 0; }\n" $2 >> ${Cfile}.c
+-        $CC $CFLAGS ${Cfile}.c -o ${Cfile}
+-        value=`${Cfile}`
++        printf "\"%s\":%s\n" $2 $2 >> ${Cfile}.c
++        value=`$CC $CFLAGS -E ${Cfile}.c | grep \"$2\" | cut -f 2 -d ':' | sed 's,^",,' | sed 's,"$,,'`
+         AC_MSG_RESULT($value)
+         printf $value
+         rm -f ${Cfile}.c ${Cfile}
index 265ea30..50f2608 100644 (file)
@@ -16,10 +16,13 @@ DEPENDS = " \
        "
 RDEPENDS_${PN} += "openais"
 
+PR = "r1"
+
 SRC_URI = " \
        http://hg.clusterlabs.org/pacemaker/stable-1.0/archive/Pacemaker-${PV}.tar.bz2;name=tar \
        file://pacemaker-remove-native-includes.patch;patch=1 \
        file://pacemaker-dont-use-help2man.patch;patch=1 \
+       file://fix-header-defs-lookup.patch;patch=1 \
        file://volatiles \
        "
 SRC_URI[tar.md5sum] = "088569ca893fe9f2239b68abe2856132"
@@ -31,6 +34,7 @@ S = "${WORKDIR}/Pacemaker-1-0-Pacemaker-${PV}"
 EXTRA_OECONF = "--with-ais --without-heartbeat --disable-fatal-warnings --disable-pretty"
 
 CFLAGS += "-I${STAGING_INCDIR}/heartbeat"
+CFLAGS_libc-uclibc += "-I${STAGING_INCDIR}/heartbeat -fstack-protector-all"
 
 do_install_append() {
        install -d ${D}${sysconfdir}/default/volatiles