Linux fixes [PATCH]
Jeff Johnston
jjohnstn@redhat.com
Wed Oct 26 23:05:00 GMT 2005
Patch checked in, thanks. Regarding dl-load.c: I am able to build this
on my FC-4 system. dl-load.c includes ldsodefs.h which then includes
dlfcn.h which is found in libc/sys/linux/include and defines
__RTLD_DLOPEN. Why aren't you picking this up in your build?
-- Jeff J.
Shaun Jackman wrote:
> I found the following patches necessary to compile newlib for
> i386-linux, In addition, dl-load.c is not compiling because it cannot
> find the symbol __RTLD_DLOPEN, which should be defined by dlfcn.h.
>
> Cheers,
> Shaun
>
> 2005-10-26 Shaun Jackman <sjackman@gmail.com>
>
> * newlib/libc/posix/scandir.c (scandir): Update the function
> prototype to match the header.
> * newlib/libc/sys/linux/linuxthreads/bits/libc-lock.h: Remove an
> extraneous #endif.
> * newlib/libc/sys/linux/sys/lock.h: Do not include
> machine/weakalias.h, since it's not used by this file.
>
> diff -u -r1.4 scandir.c
> --- posix/scandir.c 6 Jun 2003 19:57:51 -0000 1.4
> +++ posix/scandir.c 26 Oct 2005 19:30:41 -0000
> @@ -74,8 +74,8 @@
> _DEFUN(scandir, (dirname, namelist, select, dcomp),
> const char *dirname _AND
> struct dirent ***namelist _AND
> - int (*select) __P((struct dirent *)) _AND
> - int (*dcomp) __P((const void *, const void *)))
> + int (*select) __P((const struct dirent *)) _AND
> + int (*dcomp) __P((const struct dirent **, const struct dirent **)))
> {
> register struct dirent *d, *p, **names;
> register size_t nitems;
> @@ -155,7 +155,7 @@
> }
> closedir(dirp);
> if (nitems && dcomp != NULL)
> - qsort(names, nitems, sizeof(struct dirent *), dcomp);
> + qsort(names, nitems, sizeof(struct dirent *), (void *)dcomp);
> *namelist = names;
> #ifdef HAVE_DD_LOCK
> __lock_release_recursive(dirp->dd_lock);
> diff -u -r1.2 libc-lock.h
> --- sys/linux/linuxthreads/bits/libc-lock.h 8 Sep 2005 22:45:50 -0000 1.2
> +++ sys/linux/linuxthreads/bits/libc-lock.h 26 Oct 2005 19:30:43 -0000
> @@ -287,7 +287,6 @@
> # pragma weak __pthread_atfork
> # pragma weak _pthread_cleanup_push_defer
> # pragma weak _pthread_cleanup_pop_restore
> -# endif
> #endif
>
> /* We need portable names for some functions. E.g., when they are
> diff -u -r1.3 lock.h
> --- sys/linux/sys/lock.h 25 Mar 2004 22:20:36 -0000 1.3
> +++ sys/linux/sys/lock.h 26 Oct 2005 19:30:43 -0000
> @@ -1,7 +1,6 @@
> #ifndef __SYS_LOCK_H__
> #define __SYS_LOCK_H__
>
> -#include <machine/weakalias.h>
> #include <features.h>
>
> #define _LIBC 1
More information about the Newlib
mailing list