Date: Mon, 9 Dec 1996 18:20:51 -0500 (EST) From: Brad Parker <brad@american.com> To: freebsd-current@FreeBSD.org (FreeBSD-current users) Subject: some fixes to libc_r (RELENG_2_2) Message-ID: <199612092320.SAA15038@muir-woods.american.com>
next in thread | raw e-mail | index | archive | help
[is anyone else using libc_r?] I've been trying to use libc_r on RELENG_2_2 (is there a doc anywhere which describes the tags available and what they *really* mean? I assume RELENG_2_2 is 2.2-alpha) Anyway, I found some problems building libc_r; there where some missing functions and some makefiles which were out of date. If I'm out of rev or there is a better tree please let me know. I noticed some other missing functions - I only added the ones I'm using. Also, building with libc_r is a pain as you need to use -nostlib, include /usr/lib/crt0.o at the start and "/usr/lib/libgcc.a -lc_r /usr/lib/libgcc.a" at the end. A flag to "cc" would be better. New files: *** new file: gen/readdir_r.c #include <sys/param.h> #include <dirent.h> /* fake readdir_r using thread-safe readdir */ int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result) { struct dirent *dp; if ((dp = readdir(dirp)) == 0) return -1; *entry = *dp; *result = dp; return 0; } *** new file: uthread/uthread_attr_setdetachstate.c #include <errno.h> #ifdef _THREAD_SAFE #include <pthread.h> #include "pthread_private.h" int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate) { int ret; if (attr == NULL || *attr == NULL) { errno = EINVAL; ret = -1; } else { (*attr)->flags = ((*attr)->flags & ~(PTHREAD_DETACHED)) | (detachstate & PTHREAD_DETACHED); ret = 0; } return(ret); } #endif Diffs: *** uthread/Makefile.inc.~1~ Tue Aug 20 04:20:59 1996 --- uthread/Makefile.inc Mon Dec 9 14:08:39 1996 *************** *** 7,13 **** --- 7,19 ---- SRCS+= \ uthread_accept.c \ + uthread_attr_destroy.c \ + uthread_attr_init.c \ + uthread_attr_setcreatesuspend.c \ uthread_attr_setcreatesuspend_np.c \ + uthread_attr_setdetachstate.c \ + uthread_attr_setprio.c \ + uthread_attr_setstacksize.c \ uthread_autoinit.cc \ uthread_bind.c \ uthread_clean.c \ *** sys/Makefile.inc.~1~ Thu Aug 22 00:25:09 1996 --- sys/Makefile.inc Mon Dec 9 16:39:16 1996 *************** *** 6,12 **** # modules with non-default implementations on at least one architecture: SRCS+= Ovfork.S brk.S cerror.S exect.S fork.S pipe.S ptrace.S reboot.S \ ! sbrk.S setlogin.S sigpending.S sigprocmask.S sigreturn.S \ sigsuspend.S syscall.S __error.c # glue to provide compatibility between GCC 1.X and 2.X --- 6,12 ---- # modules with non-default implementations on at least one architecture: SRCS+= Ovfork.S brk.S cerror.S exect.S fork.S pipe.S ptrace.S reboot.S \ ! rfork.S sbrk.S setlogin.S sigpending.S sigprocmask.S sigreturn.S \ sigsuspend.S syscall.S __error.c # glue to provide compatibility between GCC 1.X and 2.X *************** *** 27,33 **** setpgid.o setpriority.o setregid.o setreuid.o setrlimit.o \ setsid.o settimeofday.o setuid.o shmsys.o stat.o statfs.o \ swapon.o symlink.o sync.o sysarch.o umask.o unlink.o \ ! unmount.o utimes.o vadvise.o __syscall.o __sysctl.o # Syscalls renamed as _thread_sys_{syscall}. THREADASM= accept.o bind.o close.o connect.o dup.o dup2.o \ --- 27,33 ---- setpgid.o setpriority.o setregid.o setreuid.o setrlimit.o \ setsid.o settimeofday.o setuid.o shmsys.o stat.o statfs.o \ swapon.o symlink.o sync.o sysarch.o umask.o unlink.o \ ! unmount.o utimes.o utrace.o vadvise.o __syscall.o __sysctl.o # Syscalls renamed as _thread_sys_{syscall}. THREADASM= accept.o bind.o close.o connect.o dup.o dup2.o \ *** gen/Makefile.inc.~1~ Sun Jan 21 19:22:18 1996 --- gen/Makefile.inc Mon Dec 9 15:24:19 1996 *************** *** 2,8 **** # $Id: Makefile.inc,v 1.1 1996/01/22 00:22:18 julian Exp $ # machine-independent gen sources ! .PATH: ${.CURDIR}/../libc/${MACHINE}/gen ${.CURDIR}/../libc/gen SRCS+= alarm.c assert.c clock.c closedir.c config.c confstr.c crypt.c \ ctermid.c daemon.c devname.c disklabel.c err.c errlst.c \ --- 2,8 ---- # $Id: Makefile.inc,v 1.1 1996/01/22 00:22:18 julian Exp $ # machine-independent gen sources ! .PATH: ${.CURDIR}/../libc/${MACHINE}/gen ${.CURDIR}/../libc/gen ${.CURDIR}/gen SRCS+= alarm.c assert.c clock.c closedir.c config.c confstr.c crypt.c \ ctermid.c daemon.c devname.c disklabel.c err.c errlst.c \ *************** *** 20,25 **** --- 20,28 ---- telldir.c termios.c time.c times.c timezone.c ttyname.c ttyslot.c \ ualarm.c uname.c unvis.c usleep.c utime.c valloc.c vis.c wait.c \ wait3.c waitpid.c + + # + SRCS+= readdir_r.c # *rand48 family, from 1.1.5 SRCS+= _rand48.c drand48.c erand48.c jrand48.c lcong48.c lrand48.c \ *** yp/Makefile.inc.~1~ Sun Jan 21 19:23:58 1996 --- yp/Makefile.inc Mon Dec 9 15:59:26 1996 *************** *** 4,8 **** # yp sources .PATH: ${.CURDIR}/../libc/yp ! SRCS+= xdryp.c yplib.c --- 4,18 ---- # yp sources .PATH: ${.CURDIR}/../libc/yp ! SRCS+= xdryp.c yp_xdr.c yplib.c ! CLEANFILES+= yp_xdr.c yp.h ! ! RPCSRC= ${.DESTDIR}/usr/include/rpcsvc/yp.x ! RPCGEN= rpcgen ! ! yp_xdr.c: ${RPCSRC} yp.h ! ${RPCGEN} -c -o ${.TARGET} ${RPCSRC} ! ! yp.h: ${RPCSRC} ! ${RPCGEN} -h -o ${.TARGET} ${RPCSRC}
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199612092320.SAA15038>