All of lore.kernel.org
 help / color / mirror / Atom feed
* Error building glib-2.0-2.16.1
@ 2008-04-07  0:29 Khem Raj
  2008-04-11  9:04 ` Error building ... ARG_MAX Stanislav Brabec
  0 siblings, 1 reply; 2+ messages in thread
From: Khem Raj @ 2008-04-07  0:29 UTC (permalink / raw)
  To: openembedded-devel


[-- Attachment #1.1: Type: text/plain, Size: 4586 bytes --]

Hi,

I am hitting this error reported here

http://bugzilla.gnome.org/show_bug.cgi?id=522335

In OE too. Two options, first is to upgrade glib to 2.16.2 and second 
option to backport the patch.

I have tried backporting the patch and it works ok for me. Attached is 
the patch for this. I have left the upgrade for 2.16.2 for another day.

I think we will need both solutions :)

OK?


Thanks

-Khem
#
# old_revision [ac891e557582299a2c482837fc1a4741608997eb]
#
# add_file "packages/glib-2.0/glib-2.0-2.16.1/hurd-arg-max.patch"
#  content [73f93c002ddc4e9a8bacabba9bf1e817609f773c]
# 
# patch "packages/glib-2.0/glib-2.0_2.16.1.bb"
#  from [3a48d903a74285a67c66bab7fd96be2bf1e1270a]
#    to [2facce514edcf565a81d088b6aa171df585c7adc]
#
============================================================
--- packages/glib-2.0/glib-2.0-2.16.1/hurd-arg-max.patch	73f93c002ddc4e9a8bacabba9bf1e817609f773c
+++ packages/glib-2.0/glib-2.0-2.16.1/hurd-arg-max.patch	73f93c002ddc4e9a8bacabba9bf1e817609f773c
@@ -0,0 +1,76 @@
+Source: http://bugzilla.gnome.org/show_bug.cgi?id=522335
+
+This patch fixes the following error.
+
+| make[4]: Entering directory `/home/khem/oe/build/eglibc/tmp-qemuarm/work/armv5te-angstrom-linux-gnueabi/glib-2.0-2.16.1-r3/glib-2.16.1/glib'
+| if ccache arm-angstrom-linux-gnueabi-gcc -march=armv5te -mtune=arm926ej-s -DHAVE_CONFIG_H -I. -I. -I..  -I..  -DG_LOG_DOMAIN=\"GLib\" -DG_DISABLE_CAST_CHECKS -DG_DISABLE_ASSERT -DG_DISABLE_CHECKS -DG_DISABLE_DEPRECATED -DGLIB_COMPILATION -DPCRE_STATIC -isystem/home/khem/oe/build/eglibc/tmp-qemuarm/staging/arm-angstrom-linux-gnueabi/usr/include -pthread  -isystem/home/khem/oe/build/eglibc/tmp-qemuarm/staging/arm-angstrom-linux-gnueabi/usr/include -fexpensive-optimizations -fomit-frame-pointer -frename-registers -Os -Wall -MT gtester.o -MD -MP -MF ".deps/gtester.Tpo" -c -o gtester.o gtester.c; \
+| 	then mv -f ".deps/gtester.Tpo" ".deps/gtester.Po"; else rm -f ".deps/gtester.Tpo"; exit 1; fi
+| gtester.c: In function 'launch_test_binary':
+| gtester.c:276: error: 'ARG_MAX' undeclared (first use in this function)
+| gtester.c:276: error: (Each undeclared identifier is reported only once
+| gtester.c:276: error: for each function it appears in.)
+| gtester.c:276: warning: unused variable 'argv'
+| make[4]: *** [gtester.o] Error 1
+
+
+Index: glib-2.16.1/glib/gtester.c
+===================================================================
+--- glib-2.16.1.orig/glib/gtester.c	(Revision 6750)
++++ glib-2.16.1/glib/gtester.c	(Arbeitskopie)
+@@ -273,7 +273,8 @@
+   GTestLogBuffer *tlb;
+   GSList *slist, *free_list = NULL;
+   GError *error = NULL;
+-  const gchar *argv[ARG_MAX];
++  int argc = 0;
++  const gchar **argv;
+   GPid pid = 0;
+   gint report_pipe[2] = { -1, -1 };
+   guint child_report_cb_id = 0;
+@@ -289,7 +290,34 @@
+       return FALSE;
+     }
+ 
++  /* setup argc */
++  for (slist = subtest_args; slist; slist = slist->next)
++    argc++;
++  /* argc++; */
++  if (subtest_quiet)
++    argc++;
++  if (subtest_verbose)
++    argc++;
++  if (!subtest_mode_fatal)
++    argc++;
++  if (subtest_mode_quick)
++    argc++;
++  else
++    argc++;
++  if (subtest_mode_perf)
++    argc++;
++  if (gtester_list_tests)
++    argc++;
++  if (subtest_seedstr)
++    argc++;
++  argc++;
++  if (skip_tests)
++    argc++;
++  for (slist = subtest_paths; slist; slist = slist->next)
++    argc++;
++
+   /* setup argv */
++  argv = g_malloc ((argc + 1) * sizeof(gchar *));
+   argv[i++] = binary;
+   for (slist = subtest_args; slist; slist = slist->next)
+     argv[i++] = (gchar*) slist->data;
+@@ -343,8 +371,10 @@
+       else
+         g_warning ("Failed to execute test binary: %s: %s", argv[0], error->message);
+       g_clear_error (&error);
++      g_free (argv);
+       return FALSE;
+     }
++  g_free (argv);
+ 
+   subtest_running = TRUE;
+   subtest_io_pending = TRUE;
+
============================================================
--- packages/glib-2.0/glib-2.0_2.16.1.bb	3a48d903a74285a67c66bab7fd96be2bf1e1270a
+++ packages/glib-2.0/glib-2.0_2.16.1.bb	2facce514edcf565a81d088b6aa171df585c7adc
@@ -1,9 +1,10 @@ require glib.inc
 require glib.inc
 
-PR = "r3"
+PR = "r4"
 
 SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glib/2.16/glib-${PV}.tar.bz2 \
            file://glibconfig-sysdefs.h \
            file://configure-libtool.patch;patch=1 \
            file://gcc-4.2-inline-fix.patch;patch=1 \
+           file://hurd-arg-max.patch;patch=1 \
           "

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 258 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Error building ... ARG_MAX
  2008-04-07  0:29 Error building glib-2.0-2.16.1 Khem Raj
@ 2008-04-11  9:04 ` Stanislav Brabec
  0 siblings, 0 replies; 2+ messages in thread
From: Stanislav Brabec @ 2008-04-11  9:04 UTC (permalink / raw)
  To: Using the OpenEmbedded metadata to build Distributions

Khem Raj wrote:

> +| gtester.c: In function 'launch_test_binary':
> +| gtester.c:276: error: 'ARG_MAX' undeclared (first use in this function)
> +| gtester.c:276: error: (Each undeclared identifier is reported only once
> +| gtester.c:276: error: for each function it appears in.)
> +| gtester.c:276: warning: unused variable 'argv'
> +| make[4]: *** [gtester.o] Error 1


This is a mail which appeared today on the opensuse-packaging list:

From: Cristian Rodríguez <...>
Subject: [opensuse-packaging] FYI:  glibc 2.8 may break some of your packages
Date: Fri, 11 Apr 2008 01:03:51 -0400 (07:03 CEST)

HI all :


Factory currenlty has glibc 2.8 which may break some of your packages, 
Im going to describe just one possible breakage, and hope someone else 
can contribute information about other breakages.


glibc 2.8 no longer defines ARG_MAX constant in linux, so you may see:


foobar.c:N: error: 'ARG_MAX' undeclared (first use in this function)

To fix this problem you can use something like this

#include <unistd.h> /* only if not already there !! */

#if defined(_SC_ARG_MAX)
# if defined(ARG_MAX)
#    undef ARG_MAX
# endif
# define ARG_MAX sysconf (_SC_ARG_MAX)
#endif

HTH.

Cristian.



-- 
"Freedom of religion also means freedom **from** religion" - Anonymous

Cristian Rodríguez R.
Platform/OpenSUSE - Core Services
SUSE LINUX Products GmbH
Research & Development
http://www.opensuse.org/

-------

And from reply from Stephan Kulow:

> foobar.c:N: error: 'ARG_MAX' undeclared (first use in this function)
>
> To fix this problem you can use something like this
>
Note, that the code should have done that before too, as the glibc info 
pages say:

   Each of the following limit parameters has a macro that is defined in
`limits.h' only if the system has a fixed, uniform limit for the
parameter in question.  If the system allows different file systems or
files to have different limits, then the macro is undefined; use
`sysconf' to find out the limit that applies at a particular time on a
particular machine.  

Greetings, Stephan

-- 
Stanislav Brabec
http://www.penguin.cz/~utx/zaurus




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2008-04-11  9:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-04-07  0:29 Error building glib-2.0-2.16.1 Khem Raj
2008-04-11  9:04 ` Error building ... ARG_MAX Stanislav Brabec

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.