hi,

the m4-100-uclibc.patch and bison-100-uclibc.patch are taken from the uclibc mailing list


greetz
--- bison-2.4.2/lib/spawn.in.h.orig	2010-04-23 12:37:10.000000000 +0200
+++ bison-2.4.2/lib/spawn.in.h	2010-04-23 12:37:38.000000000 +0200
@@ -31,7 +31,7 @@
 
 /* Get definitions of 'struct sched_param' and 'sigset_t'.
    But avoid namespace pollution on glibc systems.  */
-#ifndef __GLIBC__
+#if 1
 # include <sched.h>
 # include <signal.h>
 #endif
diff -durpN m4-1.4.14/lib/spawn.in.h m4-1.4.14-ucfix/lib/spawn.in.h
--- m4-1.4.14/lib/spawn.in.h    2010-01-28 05:04:07.000000000 -0800
+++ m4-1.4.14-ucfix/lib/spawn.in.h      2010-02-27 23:10:41.000000000 -0800
@@ -31,7 +31,7 @@
 
 /* Get definitions of 'struct sched_param' and 'sigset_t'.
    But avoid namespace pollution on glibc systems.  */
-#ifndef __GLIBC__
+#if 1
 # include <sched.h>
 # include <signal.h>
 #endif

# --- T2-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# 
# T2 SDE: package/.../uclibc/patches/bison-30-warn_redefined.patch
# Copyright (C) 2004 - 2009 The T2 SDE Project
# 
# More information can be found in the files COPYING and README.
# 
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
# --- T2-COPYRIGHT-NOTE-END ---

Warn symbol is part of libc.o, use a difference name.

--- bison-2.4.1/src/complain.c.orig	2009-02-20 14:57:21.000000000 +0100
+++ bison-2.4.1/src/complain.c	2009-02-20 14:57:55.000000000 +0100
@@ -94,7 +94,7 @@
 }
 
 void
-warn (const char *message, ...)
+warn_bison (const char *message, ...)
 {
   set_warning_issued ();
   ERROR_MESSAGE (NULL, _("warning"), message);
--- bison-2.4.1/src/complain.h.orig	2009-02-20 14:55:49.000000000 +0100
+++ bison-2.4.1/src/complain.h	2009-02-20 14:57:00.000000000 +0100
@@ -25,7 +25,7 @@
 
 /** Informative messages, but we proceed.  */
 
-void warn (char const *format, ...)
+void warn_bison (char const *format, ...)
   __attribute__ ((__format__ (__printf__, 1, 2)));
 
 void warn_at (location loc, char const *format, ...)
--- bison-2.4.2/src/files.c.orig	2010-02-25 05:56:42.000000000 +0100
+++ bison-2.4.2/src/files.c	2010-04-23 12:28:56.000000000 +0200
@@ -366,7 +366,7 @@ output_file_name_check (char **file_name
       for (i = 0; i < file_names_count; i++)
         if (0 == strcmp (file_names[i], *file_name))
           {
-            warn (_("conflicting outputs to file %s"),
+            warn_bison (_("conflicting outputs to file %s"),
                   quote (*file_name));
             conflict = true;
           }

--- bison-2.4.1/src/conflicts.c.orig	2009-02-20 15:08:17.000000000 +0100
+++ bison-2.4.1/src/conflicts.c	2009-02-20 15:07:59.000000000 +0100
@@ -579,7 +579,7 @@
 
   if (! glr_parser && rrc_total > 0 && expected_rr_conflicts != -1)
     {
-      warn (_("%%expect-rr applies only to GLR parsers"));
+      warn_bison (_("%%expect-rr applies only to GLR parsers"));
       expected_rr_conflicts = -1;
     }
 
--- bison-2.4.1/src/scan-skel.l.orig	2009-02-20 15:15:07.000000000 +0100
+++ bison-2.4.1/src/scan-skel.l	2009-02-20 15:17:00.000000000 +0100
@@ -186,14 +186,14 @@
         fail_for_at_directive_too_many_args (at_directive_argv[0]);
       fputs (last_component (at_directive_argv[1]), yyout);
     }
-  else if (0 == strcmp (at_directive_argv[0], "@warn")
+  else if (0 == strcmp (at_directive_argv[0], "@warn_bison")
            || 0 == strcmp (at_directive_argv[0], "@complain")
            || 0 == strcmp (at_directive_argv[0], "@fatal"))
     {
       void (*func)(char const *, ...);
       switch (at_directive_argv[0][1])
         {
-          case 'w': func = warn; break;
+          case 'w': func = warn_bison; break;
           case 'c': func = complain; break;
           case 'f': func = fatal; break;
           default: aver (false); break;
# --- T2-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# 
# T2 SDE: package/.../uclibc/patches/sed-4.1.4-malloc.patch
# Copyright (C) 2004 - 2005 The T2 SDE Project
# 
# More information can be found in the files COPYING and README.
# 
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
# --- T2-COPYRIGHT-NOTE-END ---

Source:
http://lists.gnu.org/archive/html/bug-gnu-utils/2005-08/msg00112.html

Bug Report: sed-4.1.4 misinterprets uClibc's malloc (patch included)
From: 	Yuri Vasilevski
Subject: 	Bug Report: sed-4.1.4 misinterprets uClibc's malloc (patch included)
Date: 	Tue, 23 Aug 2005 23:17:40 -0500

Hi,

Recent versions of sed expect glibc behavior form malloc, i.e.
malloc(0) return live pointer. This is not true for uClibc (and many
other old/classical libc implementations).

So I made and attach a patch to solve this problem. It basically makes
re_node_set_alloc(set,0) behave exactly as re_node_set_init_empty(set).

Yuri.

diff -Naur sed-4.1.4.orig/lib/regex_internal.c sed-4.1.4/lib/regex_internal.c
--- sed-4.1.4.orig/lib/regex_internal.c	2005-01-28 09:07:56 +0000
+++ sed-4.1.4/lib/regex_internal.c	2005-08-24 03:20:28 +0000
@@ -885,8 +885,9 @@
 {
   set->alloc = size;
   set->nelem = 0;
-  set->elems = re_malloc (Idx, size);
-  if (BE (set->elems == NULL, 0))
+  set->elems = re_malloc (Idx, size); /* can be NULL if size == 0
+				(see re_node_set_init_empty(set)) */
+  if (BE (set->elems == NULL && size != 0, 0))
     return REG_ESPACE;
   return REG_NOERROR;
 }
----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[email protected] with a subject of: unsubscribe t2

Reply via email to