[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r4245 - in glibc-package/trunk/debian: . patches/kfreebsd



Author: ps-guest
Date: 2010-04-16 11:57:46 +0000 (Fri, 16 Apr 2010)
New Revision: 4245

Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/kfreebsd/local-sysdeps.diff
Log:
kfreebsd/local-sysdeps.diff: update to revision 3031 (from glibc-bsd).



Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2010-04-11 23:54:18 UTC (rev 4244)
+++ glibc-package/trunk/debian/changelog	2010-04-16 11:57:46 UTC (rev 4245)
@@ -32,7 +32,7 @@
   * Fix lang_ab field in es_CR locales.  Closes: #571755.
 
   [ Petr Salinger]
-  * kfreebsd/local-sysdeps.diff: update to revision 2994 (from glibc-bsd).
+  * kfreebsd/local-sysdeps.diff: update to revision 3031 (from glibc-bsd).
   * any/local-linuxthreads-stacksize.diff: New patch to restrict 
     max stack size in threads
 

Modified: glibc-package/trunk/debian/patches/kfreebsd/local-sysdeps.diff
===================================================================
--- glibc-package/trunk/debian/patches/kfreebsd/local-sysdeps.diff	2010-04-11 23:54:18 UTC (rev 4244)
+++ glibc-package/trunk/debian/patches/kfreebsd/local-sysdeps.diff	2010-04-16 11:57:46 UTC (rev 4245)
@@ -8261,6 +8261,89 @@
 +
 +#include_next <dl-machine.h>
 --- /dev/null
++++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-origin.c
+@@ -0,0 +1,80 @@
++/* Find path of executable.
++   Copyright (C) 1998, 1999, 2000, 2002, 2004 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <assert.h>
++#include <stdlib.h>
++#include <string.h>
++#include <unistd.h>
++#include <sys/param.h>
++#include <ldsodefs.h>
++#include <sysdep.h>
++
++#include <dl-dst.h>
++
++/* On Linux >= 2.1 systems which have the dcache implementation we can get
++   the path of the application from the /proc/self/exe symlink.  Try this
++   first and fall back on the generic method if necessary.  */
++
++const char *
++_dl_get_origin (void)
++{
++  char linkval[PATH_MAX];
++  char *result;
++  int len;
++
++  len = readlink("/proc/self/exe", linkval, sizeof (linkval));
++
++  if (len > 0 && linkval[0] != '[')
++    {
++      /* We can use this value.  */
++      assert (linkval[0] == '/');
++      while (len > 1 && linkval[len - 1] != '/')
++	--len;
++      result = (char *) malloc (len + 1);
++      if (result == NULL)
++	result = (char *) -1;
++      else if (len == 1)
++	memcpy (result, "/", 2);
++      else
++	*((char *) __mempcpy (result, linkval, len - 1)) = '\0';
++    }
++  else
++    {
++      result = (char *) -1;
++      /* We use the environment variable LD_ORIGIN_PATH.  If it is set make
++	 a copy and strip out trailing slashes.  */
++      if (GLRO(dl_origin_path) != NULL)
++	{
++	  size_t len = strlen (GLRO(dl_origin_path));
++	  result = (char *) malloc (len + 1);
++	  if (result == NULL)
++	    result = (char *) -1;
++	  else
++	    {
++	      char *cp = __mempcpy (result, GLRO(dl_origin_path), len);
++	      while (cp > result + 1 && cp[-1] == '/')
++		--cp;
++	      *cp = '\0';
++	    }
++	}
++    }
++
++  return result;
++}
+--- /dev/null
 +++ b/ports/sysdeps/unix/bsd/bsd4.4/kfreebsd/dl-osinfo.h
 @@ -0,0 +1,98 @@
 +/* Operating system specific code  for generic dynamic loader functions.


Reply to: