[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