[uClibc-cvs] svn commit: branches/uClibc-nptl: debian docs docs/uclibc.org extra/Config etc...

sjhill at uclibc.org sjhill at uclibc.org
Thu Aug 18 23:43:54 UTC 2005


Author: sjhill
Date: 2005-08-18 17:43:52 -0600 (Thu, 18 Aug 2005)
New Revision: 11213

Log:
Sync with trunk.


Removed:
   branches/uClibc-nptl/debian/ldconfig.1
   branches/uClibc-nptl/debian/ldd.1

Modified:
   branches/uClibc-nptl/debian/rules
   branches/uClibc-nptl/docs/uClibc_vs_SuSv3.txt
   branches/uClibc-nptl/docs/uclibc.org/news.html
   branches/uClibc-nptl/docs/uclibc.org/oldnews.html
   branches/uClibc-nptl/extra/Configs/Config.in
   branches/uClibc-nptl/ldso/ldso/x86_64/dl-startup.h
   branches/uClibc-nptl/libc/inet/rpc/clnt_generic.c
   branches/uClibc-nptl/libc/inet/rpc/getrpcent.c
   branches/uClibc-nptl/libc/inet/rpc/rcmd.c
   branches/uClibc-nptl/libc/stdlib/Makefile
   branches/uClibc-nptl/libc/string/wstring.c
   branches/uClibc-nptl/libc/sysdeps/linux/common/create_module.c
   branches/uClibc-nptl/libc/sysdeps/linux/powerpc/Makefile
   branches/uClibc-nptl/test/rpc/getrpcent_r.c
   branches/uClibc-nptl/utils/ldd.c


Changeset:
Deleted: branches/uClibc-nptl/debian/ldconfig.1
===================================================================
--- branches/uClibc-nptl/debian/ldconfig.1	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/debian/ldconfig.1	2005-08-18 23:43:52 UTC (rev 11213)
@@ -1,28 +0,0 @@
-.TH UCLIBC-GCC 1
-.SH NAME
-uclibc-gcc \- Cross-compiler for uClibc
-.SH SYNOPSIS
-.B uclibc-gcc
-[
-.B options
-]
-.br
-.B uclibc-ld
-[
-.B options
-]
-.SH DESCRIPTION
-These programs are wrappers for
-.B gcc
-and
-.B ld.
-.SH BUGS
-Probably.
-
-.SH AUTHORS
-Manuel Nova
-.br
-Manual page written by David Schleef <ds at schleef.org>
-.SH SEE ALSO
-.BR gcc (1),
-.BR ld (1)

Deleted: branches/uClibc-nptl/debian/ldd.1
===================================================================
--- branches/uClibc-nptl/debian/ldd.1	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/debian/ldd.1	2005-08-18 23:43:52 UTC (rev 11213)
@@ -1,20 +0,0 @@
-.TH UCLIBC-LDD 1
-.SH NAME
-uclibc-ldd \- Print shared library dependencies
-.SH SYNOPSIS
-.B uclibc-ldd
-[
-.B options
-]
-.B file...
-.SH DESCRIPTION
-Prints shared library dependencies.
-.SH BUGS
-Maybe.
-
-.SH AUTHORS
-Erik Andersen <andersen at codepoet.org>
-.br
-Manual page written by David Schleef <ds at schleef.org>
-.SH SEE ALSO
-.BR ldd (1)

Modified: branches/uClibc-nptl/debian/rules
===================================================================
--- branches/uClibc-nptl/debian/rules	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/debian/rules	2005-08-18 23:43:52 UTC (rev 11213)
@@ -133,10 +133,11 @@
 	$(MAKE) install install_utils PREFIX=`pwd`/debian/tmp
 
 	install -d debian/tmp/usr/share/man/man1
-	install -m 644 debian/ldd.1 \
+	install -m 644 docs/man/ldd.1 \
 	  debian/tmp/usr/share/man/man1/ldd.1
-	install -m 644 debian/ldconfig.1 \
-	  debian/tmp/usr/share/man/man1/ldconfig.1
+	install -d debian/tmp/usr/share/man/man8
+	install -m 644 docs/man/ldconfig.8 \
+	  debian/tmp/usr/share/man/man8/ldconfig.8
 	
 
 # Build architecture-independent files here.

Modified: branches/uClibc-nptl/docs/uClibc_vs_SuSv3.txt
===================================================================
--- branches/uClibc-nptl/docs/uClibc_vs_SuSv3.txt	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/docs/uClibc_vs_SuSv3.txt	2005-08-18 23:43:52 UTC (rev 11213)
@@ -93,9 +93,8 @@
 sys/mman.h: posix_madvice (depends on ADV); posix_mem_offset,
          posix_typed_mem_getinfo, posix_typed_mem_open (depend on TYM);
          shm_open, shm_unlink (depend on SHM)
-fcntl.h: posix_fadvice, posix_fallocate (depend on ADV)
+fcntl.h: posix_fallocate (depend on ADV)
 signal.h: sigqueue (depends on RTS)
-stdlib.h: posix_memalign (depends on ADV)
 
 
 Unimplemented mathematical interfaces:

Modified: branches/uClibc-nptl/docs/uclibc.org/news.html
===================================================================
--- branches/uClibc-nptl/docs/uclibc.org/news.html	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/docs/uclibc.org/news.html	2005-08-18 23:43:52 UTC (rev 11213)
@@ -3,8 +3,35 @@
 
 <ul>
 
-  <li><b>13 January 2005 -- Bug and Patch Tracking</b><p>
+    <li> <b>17 August 2005, uClibc 0.9.28 Released</b>
+    <br>
 
+    CodePoet Consulting is pleased to announce the release of uClibc 0.9.28.
+    You are probably used to this by now, but this release is NOT binary
+    compatible with uClibc 0.9.27 or any earlier release, so be prepared to
+    recompile your software if you are still using an old version of uClibc.
+
+    <p>
+
+    Updated uClibc development systems built using uClibc 0.9.28, along
+    with the <a href="http://buildroot.uclibc.org/">uClibc buildroot</a>
+    and source code used to compile these development systems will be released
+    later this evening, along with
+    <a href="http://ltp.sourceforge.net/">Linux Test Project test suite</a>
+    results demonstrating how uClibc is doing.  Contributions of LTP test
+    suite run results using uClibc are welcome...
+
+    <p>
+
+    As usual the
+    <a href="http://www.uclibc.org/downloads/uClibc-0.9.28.tar.bz2">source code for this release</a>
+    is available <a href="http://www.uclibc.org/downloads/">here</a>.
+
+
+
+    <p>
+    <li><b>13 January 2005 -- Bug and Patch Tracking</b><p>
+
     Bug reports sometimes get lost when posted to the mailing list.  The
     developers of uClibc are busy people, and have only so much they can keep
     in their brains at a time. In my case, I'm lucky if I can remember my own
@@ -21,40 +48,6 @@
     properly considered.
 
 
-    <p>
-    <li> <b>12 January 2005, uClibc 0.9.27 Released</b>
-    <br>
-
-    CodePoet Consulting is pleased to announce the release of
-    uClibc 0.9.27.  Release highlights include a new stdio core,
-    Linux 2.6.x support, a much improved shared library loader,
-    support for several new architectures, and of course fixes for
-    the usual pile of bugs.
-
-    <p>
-
-    Due primarily to the stdio changes, this release is NOT binary
-    compatible with uClibc 0.9.26 or any earlier release, so be
-    prepared to recompile your software if you are still using an
-    old version of uClibc.  Sorry for the pain...
-
-    <p>
-
-    Updated uClibc development systems using uClibc 0.9.27, along
-    with the uClibc buildroot and source code used to compile these
-    development systems, have also been released and are available
-    from the uclibc.org downloads area.
-
-    <p>
-
-    As usual, the
-    <a href="http://www.uclibc.org/downloads/Changelog">Changelog</a>,
-    <a href="http://www.uclibc.org/downloads/Changelog.full">detailed changelog</a>,
-    and <a href="http://www.uclibc.org/downloads/uClibc-0.9.27.tar.bz2">source code for this release</a>
-    are available <a href="http://www.uclibc.org/downloads/">here</a>.
-
-
-
     <p> <li> <b>Old News</b>
     <br>
     <a href="/oldnews.html">Click here to read older news</a>

Modified: branches/uClibc-nptl/docs/uclibc.org/oldnews.html
===================================================================
--- branches/uClibc-nptl/docs/uclibc.org/oldnews.html	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/docs/uclibc.org/oldnews.html	2005-08-18 23:43:52 UTC (rev 11213)
@@ -4,6 +4,40 @@
 <ul>
 
 
+    <li> <b>12 January 2005, uClibc 0.9.27 Released</b>
+    <br>
+
+    CodePoet Consulting is pleased to announce the release of
+    uClibc 0.9.27.  Release highlights include a new stdio core,
+    Linux 2.6.x support, a much improved shared library loader,
+    support for several new architectures, and of course fixes for
+    the usual pile of bugs.
+
+    <p>
+
+    Due primarily to the stdio changes, this release is NOT binary
+    compatible with uClibc 0.9.26 or any earlier release, so be
+    prepared to recompile your software if you are still using an
+    old version of uClibc.  Sorry for the pain...
+
+    <p>
+
+    Updated uClibc development systems using uClibc 0.9.27, along
+    with the uClibc buildroot and source code used to compile these
+    development systems, have also been released and are available
+    from the uclibc.org downloads area.
+
+    <p>
+
+    As usual, the
+    <a href="http://www.uclibc.org/downloads/Changelog">Changelog</a>,
+    <a href="http://www.uclibc.org/downloads/Changelog.full">detailed changelog</a>,
+    and <a href="http://www.uclibc.org/downloads/uClibc-0.9.27.tar.bz2">source code for this release</a>
+    are available <a href="http://www.uclibc.org/downloads/">here</a>.
+
+
+
+    <p>
     <li> <b>20 April 2004, uClibc 0.9.26 based Debian uwoody</b>
     <br>
 

Modified: branches/uClibc-nptl/extra/Configs/Config.in
===================================================================
--- branches/uClibc-nptl/extra/Configs/Config.in	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/extra/Configs/Config.in	2005-08-18 23:43:52 UTC (rev 11213)
@@ -573,6 +573,15 @@
 	  nfs mounts to work.  If you find you need the rest of the RPC stuff,
 	  then enable this option.  Most people can safely answer N.
 
+config UCLIBC_HAS_REENTRANT_RPC
+	bool "Reentrant RPC support"
+	depends on UCLIBC_HAS_RPC
+	default y if !HAVE_SHARED
+	help
+	  Most packages utilize the normal (non-reentrant) RPC functions, but 
+	  some (like exportfs from nfs-utils) need these reentrant versions.  
+	  Most people can safely answer N.
+
 endmenu
 
 

Modified: branches/uClibc-nptl/ldso/ldso/x86_64/dl-startup.h
===================================================================
--- branches/uClibc-nptl/ldso/ldso/x86_64/dl-startup.h	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/ldso/ldso/x86_64/dl-startup.h	2005-08-18 23:43:52 UTC (rev 11213)
@@ -42,10 +42,10 @@
 
 /* Handle relocation of the symbols in the dynamic loader. */
 static __always_inline
-void PERFORM_BOOTSTRAP_RELOC(ELF_RELOC *rpnt, unsigned long *reloc_addr,
-	unsigned long symbol_addr, unsigned long load_addr, Elf64_Sym *sym)
+void PERFORM_BOOTSTRAP_RELOC(ELF_RELOC *rpnt, ElfW(Addr) *reloc_addr,
+	ElfW(Addr) symbol_addr, ElfW(Addr) load_addr, ElfW(Sym) *sym)
 {
-	switch (ELF64_R_TYPE(rpnt->r_info)) {
+	switch (ELF_R_TYPE(rpnt->r_info)) {
 		case R_X86_64_GLOB_DAT:
 		case R_X86_64_JUMP_SLOT:
 			*reloc_addr = symbol_addr + rpnt->r_addend;

Modified: branches/uClibc-nptl/libc/inet/rpc/clnt_generic.c
===================================================================
--- branches/uClibc-nptl/libc/inet/rpc/clnt_generic.c	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/libc/inet/rpc/clnt_generic.c	2005-08-18 23:43:52 UTC (rev 11213)
@@ -53,7 +53,9 @@
   struct hostent hostbuf, *h;
   size_t hstbuflen;
   char *hsttmpbuf;
-  struct protoent *p;
+  struct protoent protobuf, *p;
+  size_t prtbuflen;
+  char *prttmpbuf;
   struct sockaddr_in sin;
   struct sockaddr_un sun;
   int sock;
@@ -113,14 +115,23 @@
   memset (sin.sin_zero, 0, sizeof (sin.sin_zero));
   memcpy ((char *) &sin.sin_addr, h->h_addr, h->h_length);
 
-#warning getprotobyname is not reentrant...  Add getprotobyname_r
-  p = getprotobyname(proto);
-  if (p == NULL) {
-      struct rpc_createerr *ce = &get_rpc_createerr ();
-      ce->cf_stat = RPC_UNKNOWNPROTO;
-      ce->cf_error.re_errno = EPFNOSUPPORT;
-      return NULL;
-  }
+  prtbuflen = 1024;
+  prttmpbuf = alloca (prtbuflen);
+  while (getprotobyname_r (proto, &protobuf, prttmpbuf, prtbuflen, &p) != 0
+	 || p == NULL)
+	if (errno != ERANGE)
+      {
+	struct rpc_createerr *ce = &get_rpc_createerr ();
+	ce->cf_stat = RPC_UNKNOWNPROTO;
+	ce->cf_error.re_errno = EPFNOSUPPORT;
+	return NULL;
+      }
+    else
+      {
+	/* Enlarge the buffer.  */
+	prtbuflen *= 2;
+	prttmpbuf = alloca (prtbuflen);
+      }
 
   sock = RPC_ANYSOCK;
   switch (p->p_proto)

Modified: branches/uClibc-nptl/libc/inet/rpc/getrpcent.c
===================================================================
--- branches/uClibc-nptl/libc/inet/rpc/getrpcent.c	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/libc/inet/rpc/getrpcent.c	2005-08-18 23:43:52 UTC (rev 11213)
@@ -42,6 +42,7 @@
 #include <netdb.h>
 #include <sys/socket.h>
 #include <arpa/inet.h>
+#include <errno.h>
 
 /*
  * Internet version.
@@ -58,46 +59,37 @@
 	char *domain;
 } *rpcdata;
 
-static struct rpcent *interpret(const char *val, int len);
-
 static char RPCDB[] = "/etc/rpc";
 
 static struct rpcdata *_rpcdata(void)
 {
 	register struct rpcdata *d = rpcdata;
 
-	if (d == 0) {
+	if (d == NULL) {
 		d = (struct rpcdata *) calloc(1, sizeof(struct rpcdata));
 
 		rpcdata = d;
 	}
-	return (d);
+	return d;
 }
 
-struct rpcent *getrpcbynumber(number)
-register int number;
+struct rpcent *getrpcbynumber(register int number)
 {
 	register struct rpcdata *d = _rpcdata();
-	register struct rpcent *p;
+	register struct rpcent *rpc;
 
-	if (d == 0)
-		return (0);
+	if (d == NULL)
+		return NULL;
 	setrpcent(0);
-	while ((p = getrpcent())) {
-		if (p->r_number == number)
+	while ((rpc = getrpcent())) {
+		if (rpc->r_number == number)
 			break;
 	}
 	endrpcent();
-	return (p);
+	return rpc;
 }
 
-struct rpcent *
-#ifdef __linux__
-getrpcbyname(const char *name)
-#else
-getrpcbyname(name)
-char *name;
-#endif
+struct rpcent *getrpcbyname(const char *name)
 {
 	struct rpcent *rpc;
 	char **rp;
@@ -105,25 +97,21 @@
 	setrpcent(0);
 	while ((rpc = getrpcent())) {
 		if (strcmp(rpc->r_name, name) == 0)
-			return (rpc);
+			return rpc;
 		for (rp = rpc->r_aliases; *rp != NULL; rp++) {
 			if (strcmp(*rp, name) == 0)
-				return (rpc);
+				return rpc;
 		}
 	}
 	endrpcent();
-	return (NULL);
+	return NULL;
 }
 
-#ifdef __linux__
-void
-#endif
-setrpcent(f)
-int f;
+void setrpcent(int f)
 {
 	register struct rpcdata *d = _rpcdata();
 
-	if (d == 0)
+	if (d == NULL)
 		return;
 	if (d->rpcf == NULL)
 		d->rpcf = fopen(RPCDB, "r");
@@ -135,36 +123,42 @@
 	d->stayopen |= f;
 }
 
-#ifdef __linux__
-void
-#endif
-endrpcent()
+void endrpcent()
 {
 	register struct rpcdata *d = _rpcdata();
 
-	if (d == 0)
+	if (d == NULL)
 		return;
-	if (d->current && !d->stayopen) {
+	if (d->stayopen)
+		return;
+	if (d->current) {
 		free(d->current);
 		d->current = NULL;
 	}
-	if (d->rpcf && !d->stayopen) {
+	if (d->rpcf) {
 		fclose(d->rpcf);
 		d->rpcf = NULL;
 	}
 }
 
+static struct rpcent *interpret(struct rpcdata *);
+
+static struct rpcent *__get_next_rpcent(struct rpcdata *d)
+{
+	if (fgets(d->line, BUFSIZ, d->rpcf) == NULL)
+		return NULL;
+	return interpret(d);
+}
+
 struct rpcent *getrpcent()
 {
 	register struct rpcdata *d = _rpcdata();
 
-	if (d == 0)
-		return (NULL);
+	if (d == NULL)
+		return NULL;
 	if (d->rpcf == NULL && (d->rpcf = fopen(RPCDB, "r")) == NULL)
-		return (NULL);
-	if (fgets(d->line, BUFSIZ, d->rpcf) == NULL)
-		return (NULL);
-	return interpret(d->line, strlen(d->line));
+		return NULL;
+	return __get_next_rpcent(d);
 }
 
 #ifdef __linux__
@@ -184,37 +178,33 @@
 }
 #endif
 
-static struct rpcent *interpret(const char *val, int len)
+static struct rpcent *interpret(register struct rpcdata *d)
 {
-	register struct rpcdata *d = _rpcdata();
 	char *p;
 	register char *cp, **q;
 
-	if (d == 0)
-		return NULL;
-	strncpy(d->line, val, len);
 	p = d->line;
-	d->line[len] = '\n';
+	d->line[strlen(p)-1] = '\n';
 	if (*p == '#')
-		return (getrpcent());
+		return __get_next_rpcent(d);
 	cp = index(p, '#');
 	if (cp == NULL) {
 		cp = index(p, '\n');
 		if (cp == NULL)
-			return (getrpcent());
+			return __get_next_rpcent(d);
 	}
 	*cp = '\0';
 #ifdef __linux__
 	if ((cp = firstwhite(p)))
 		*cp++ = 0;
 	else
-		return (getrpcent());
+		return __get_next_rpcent(d);
 #else
 	cp = index(p, ' ');
 	if (cp == NULL) {
 		cp = index(p, '\t');
 		if (cp == NULL)
-			return (getrpcent());
+			return __get_next_rpcent(d);
 	}
 	*cp++ = '\0';
 #endif
@@ -259,5 +249,102 @@
 #endif
 	}
 	*q = NULL;
-	return (&d->rpc);
+	return &d->rpc;
 }
+
+#if defined(__UCLIBC_HAS_REENTRANT_RPC__)
+
+#if defined(__UCLIBC_HAS_THREADS__)
+# include <pthread.h>
+static pthread_mutex_t rpcdata_lock = PTHREAD_MUTEX_INITIALIZER;
+# define LOCK    __pthread_mutex_lock(&rpcdata_lock)
+# define UNLOCK  __pthread_mutex_unlock(&rpcdata_lock);
+#else
+# define LOCK
+# define UNLOCK
+#endif
+
+static int __copy_rpcent(struct rpcent *r, struct rpcent *result_buf, char *buffer, 
+		size_t buflen, struct rpcent **result)
+{
+	size_t i, s;
+
+	*result = NULL;
+
+	if (!r)
+		return ENOENT;
+
+	/* copy the struct from the shared mem */
+	memset(result_buf, 0x00, sizeof(*result_buf));
+	memset(buffer, 0x00, buflen);
+
+	result_buf->r_number = r->r_number;
+
+	/* copy the aliases ... need to not only copy the alias strings, 
+	 * but the array of pointers to the alias strings */
+	i = 0;
+	while (r->r_aliases[i++]) ;
+
+	s = i-- * sizeof(char*);
+	if (buflen < s)
+		goto err_out;
+	result_buf->r_aliases = (char**)buffer;
+	buffer += s;
+	buflen -= s;
+
+	while (i-- > 0) {
+		s = strlen(r->r_aliases[i]) + 1;
+		if (buflen < s)
+			goto err_out;
+		result_buf->r_aliases[i] = buffer;
+		buffer += s;
+		buflen -= s;
+		memcpy(result_buf->r_aliases[i], r->r_aliases[i], s);
+	}
+
+	/* copy the name */
+	i = strlen(r->r_name);
+	if (buflen <= i)
+		goto err_out;
+	result_buf->r_name = buffer;
+	memcpy(result_buf->r_name, r->r_name, i);
+
+	/* that was a hoot eh ? */
+	*result = result_buf;
+
+	return 0;
+err_out:
+	return ERANGE;
+}
+
+int getrpcbynumber_r(int number, struct rpcent *result_buf, char *buffer,
+		size_t buflen, struct rpcent **result)
+{
+	int ret;
+	LOCK;
+	ret = __copy_rpcent(getrpcbynumber(number), result_buf, buffer, buflen, result);
+	UNLOCK;
+	return ret;
+}
+
+int getrpcbyname_r(const char *name, struct rpcent *result_buf, char *buffer,
+		size_t buflen, struct rpcent **result)
+{
+	int ret;
+	LOCK;
+	ret = __copy_rpcent(getrpcbyname(name), result_buf, buffer, buflen, result);
+	UNLOCK;
+	return ret;
+}
+
+int getrpcent_r(struct rpcent *result_buf, char *buffer, 
+		size_t buflen, struct rpcent **result)
+{
+	int ret;
+	LOCK;
+	ret = __copy_rpcent(getrpcent(), result_buf, buffer, buflen, result);
+	UNLOCK;
+	return ret;
+}
+
+#endif /* __UCLIBC_HAS_REENTRANT_RPC__ */

Modified: branches/uClibc-nptl/libc/inet/rpc/rcmd.c
===================================================================
--- branches/uClibc-nptl/libc/inet/rpc/rcmd.c	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/libc/inet/rpc/rcmd.c	2005-08-18 23:43:52 UTC (rev 11213)
@@ -57,12 +57,7 @@
 #include <netinet/in.h>
 #include <arpa/inet.h>
 
-#ifdef __UCLIBC_HAS_THREADS__
-#undef __UCLIBC_HAS_THREADS__
-#warning FIXME I am not reentrant yet...
-#endif
 
-
 /* some forward declarations */
 static int __ivaliduser2(FILE *hostf, u_int32_t raddr,
 			 const char *luser, const char *ruser, const char *rhost);
@@ -76,13 +71,13 @@
      const char *locuser, *remuser, *cmd;
      int *fd2p;
 {
-#ifdef __UCLIBC_HAS_THREADS__
+#ifdef __UCLIBC_HAS_REENTRANT_RPC__
 	int herr;
-        struct hostent hostbuf;
+	struct hostent hostbuf;
 	size_t hstbuflen;
 	char *tmphstbuf;
 #endif
-        struct hostent *hp;
+	struct hostent *hp;
 	struct sockaddr_in sin, from;
 	struct pollfd pfd[2];
 	int32_t oldmask;
@@ -92,7 +87,7 @@
 
 	pid = getpid();
 
-#ifdef __UCLIBC_HAS_THREADS__
+#ifdef __UCLIBC_HAS_REENTRANT_RPC__
 	hstbuflen = 1024;
 #ifdef __ARCH_HAS_MMU__
 	tmphstbuf = alloca (hstbuflen);
@@ -299,14 +294,14 @@
         struct hostent *hp;
 	u_int32_t addr;
 	char **ap;
-#ifdef __UCLIBC_HAS_THREADS__
+#ifdef __UCLIBC_HAS_REENTRANT_RPC__
 	size_t buflen;
 	char *buffer;
 	int herr;
 	struct hostent hostbuf;
 #endif
 
-#ifdef __UCLIBC_HAS_THREADS__
+#ifdef __UCLIBC_HAS_REENTRANT_RPC__
 	buflen = 1024;
 #ifdef __ARCH_HAS_MMU__
 	buffer = alloca (buflen);
@@ -432,7 +427,7 @@
 		size_t dirlen;
 		uid_t uid;
 
-#ifdef __UCLIBC_HAS_THREADS__
+#ifdef __UCLIBC_HAS_REENTRANT_RPC__
 		size_t buflen = sysconf (_SC_GETPW_R_SIZE_MAX);
 		struct passwd pwdbuf;
 #ifdef __ARCH_HAS_MMU__
@@ -515,7 +510,7 @@
 	int negate=1;    /* Multiply return with this to get -1 instead of 1 */
 	char **pp;
 
-#ifdef __UCLIBC_HAS_THREADS__
+#ifdef __UCLIBC_HAS_REENTRANT_RPC__
 	int save_errno;
 	size_t buflen;
 	char *buffer;
@@ -545,7 +540,7 @@
 		return negate * (! (raddr ^ laddr));
 
 	/* Better be a hostname. */
-#ifdef __UCLIBC_HAS_THREADS__
+#ifdef __UCLIBC_HAS_REENTRANT_RPC__
 	buflen = 1024;
 	buffer = malloc(buflen);
 	save_errno = errno;
@@ -559,7 +554,7 @@
 	__set_errno (save_errno);
 #else
 	hp = gethostbyname(lhost);
-#endif /* __UCLIBC_HAS_THREADS__ */
+#endif /* __UCLIBC_HAS_REENTRANT_RPC__ */
 
 	if (hp == NULL)
 		return 0;

Modified: branches/uClibc-nptl/libc/stdlib/Makefile
===================================================================
--- branches/uClibc-nptl/libc/stdlib/Makefile	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/libc/stdlib/Makefile	2005-08-18 23:43:52 UTC (rev 11213)
@@ -1,7 +1,7 @@
 # Makefile for uClibc
 #
 # Copyright (C) 2000 by Lineo, inc.
-# Copyright (C) 2000,2001 Erik Andersen <andersen at uclibc.org>
+# Copyright (C) 2000-2005 Erik Andersen <andersen at uclibc.org>
 #
 # This program is free software; you can redistribute it and/or modify it under
 # the terms of the GNU Library General Public License as published by the Free
@@ -86,7 +86,7 @@
 	getpt.c ptsname.c grantpt.c unlockpt.c gcvt.c drand48-iter.c jrand48.c \
 	jrand48_r.c lrand48.c lrand48_r.c mrand48.c mrand48_r.c nrand48.c \
 	nrand48_r.c rand_r.c srand48.c srand48_r.c seed48.c seed48_r.c \
-	valloc.c
+	valloc.c posix_memalign.c
 ifeq ($(UCLIBC_HAS_FLOATS),y)
 	CSRC += drand48.c drand48_r.c erand48.c erand48_r.c
 endif

Modified: branches/uClibc-nptl/libc/string/wstring.c
===================================================================
--- branches/uClibc-nptl/libc/string/wstring.c	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/libc/string/wstring.c	2005-08-18 23:43:52 UTC (rev 11213)
@@ -1572,7 +1572,6 @@
 #ifdef L___glibc_strerror_r
 
 weak_alias(__glibc_strerror_r,__strerror_r);
-weak_alias(__glibc_strerror_r,_glibc_strerror_r); /* for 0.9.27 compat ... remove after 0.9.28 */
 
 char *__glibc_strerror_r(int errnum, char *strerrbuf, size_t buflen)
 {

Modified: branches/uClibc-nptl/libc/sysdeps/linux/common/create_module.c
===================================================================
--- branches/uClibc-nptl/libc/sysdeps/linux/common/create_module.c	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/libc/sysdeps/linux/common/create_module.c	2005-08-18 23:43:52 UTC (rev 11213)
@@ -31,7 +31,7 @@
 
 #ifdef __NR_create_module
 
-#if defined(__i386__) || defined(__m68k__) || defined(__arm__) || defined(__cris__) || defined(__i960__)
+#if defined(__i386__) || defined(__m68k__) || defined(__arm__) || defined(__thumb__) || defined(__cris__) || defined(__i960__)
 #define __NR___create_module  __NR_create_module
 #ifdef __STR_NR_create_module
 #define __STR_NR___create_module  __STR_NR_create_module

Modified: branches/uClibc-nptl/libc/sysdeps/linux/powerpc/Makefile
===================================================================
--- branches/uClibc-nptl/libc/sysdeps/linux/powerpc/Makefile	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/libc/sysdeps/linux/powerpc/Makefile	2005-08-18 23:43:52 UTC (rev 11213)
@@ -25,10 +25,10 @@
 CTOR_TARGETS=$(TOPDIR)lib/crti.o $(TOPDIR)lib/crtn.o
 
 SSRC=__longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S brk.S \
-	clone.S __uClibc_syscall.S syscall.S
+	clone.S __uClibc_syscall.S syscall.S vfork.S
 SOBJS=$(patsubst %.S,%.o, $(SSRC))
 
-CSRC=mmap.c vfork.c __syscall_error.c pread_write.c ioctl.c
+CSRC=mmap.c __syscall_error.c pread_write.c ioctl.c
 COBJS=$(patsubst %.c,%.o, $(CSRC))
 
 OBJS=$(SOBJS) $(COBJS)

Modified: branches/uClibc-nptl/test/rpc/getrpcent_r.c
===================================================================
--- branches/uClibc-nptl/test/rpc/getrpcent_r.c	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/test/rpc/getrpcent_r.c	2005-08-18 23:43:52 UTC (rev 11213)
@@ -5,9 +5,8 @@
 int main(int argc, char *argv[])
 {
 	int ret;
-	char rpcdata[10024];
+	char rpcdata[1024];
 	struct rpcent rpcbuf, *ent;
-memset(rpcdata, 0x00, sizeof(rpcdata));
 
 	while ((ret = getrpcent_r(&rpcbuf, rpcdata, sizeof(rpcdata), &ent)) == 0) {
 		printf("%s: %i", ent->r_name, ent->r_number);

Modified: branches/uClibc-nptl/utils/ldd.c
===================================================================
--- branches/uClibc-nptl/utils/ldd.c	2005-08-18 23:43:36 UTC (rev 11212)
+++ branches/uClibc-nptl/utils/ldd.c	2005-08-18 23:43:52 UTC (rev 11213)
@@ -51,7 +51,7 @@
 #include <dmalloc.h>
 #endif
 
-#if defined(__arm__)
+#if defined(__arm__) || defined(__thumb__)
 #define MATCH_MACHINE(x) (x == EM_ARM)
 #define ELFCLASSM	ELFCLASS32
 #endif




More information about the uClibc-cvs mailing list