From fb7331e34c33284b4be9d41a890b8e057a53e812 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Wed, 6 Feb 2008 22:01:30 +0000 Subject: Remove dependency from Cygwin internal code. * Makefile.in (CYGWIN_OBJS): Remove smallprint.o. (cygserver.exe): Remove strfuncs.o (strfuncs.o): Drop rule. * bsd_log.cc (_vlog): Use snprintf/vsnprintf instead of __small_sprintf/__small_vsprintf. * sysv_sem.cc (seminit): Use sys_malloc instead of malloc. Use snprintf instead of __small_sprintf. (semunload): Free the above allocated sema_mtx names here. --- winsup/cygserver/ChangeLog | 12 ++++++++++++ winsup/cygserver/Makefile.in | 7 ++----- winsup/cygserver/bsd_log.cc | 8 ++++---- winsup/cygserver/sysv_sem.cc | 9 ++++++--- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/winsup/cygserver/ChangeLog b/winsup/cygserver/ChangeLog index fddfa4b8f..1067b8617 100644 --- a/winsup/cygserver/ChangeLog +++ b/winsup/cygserver/ChangeLog @@ -1,3 +1,15 @@ +2008-02-06 Corinna Vinschen + + Remove dependency from Cygwin internal code. + * Makefile.in (CYGWIN_OBJS): Remove smallprint.o. + (cygserver.exe): Remove strfuncs.o + (strfuncs.o): Drop rule. + * bsd_log.cc (_vlog): Use snprintf/vsnprintf instead of + __small_sprintf/__small_vsprintf. + * sysv_sem.cc (seminit): Use sys_malloc instead of malloc. Use + snprintf instead of __small_sprintf. + (semunload): Free the above allocated sema_mtx names here. + 2008-02-03 Brian Dessent * Makefile.in: Don't link strfuncs.o from the Cygwin build dir. diff --git a/winsup/cygserver/Makefile.in b/winsup/cygserver/Makefile.in index cea7bcd52..a57e7b6b6 100644 --- a/winsup/cygserver/Makefile.in +++ b/winsup/cygserver/Makefile.in @@ -43,7 +43,7 @@ OBJS:= cygserver.o client.o process.o msg.o sem.o shm.o threaded_queue.o \ sysv_msg.o sysv_sem.o sysv_shm.o LIBOBJS:=${patsubst %.o,lib%.o,$(OBJS)} -CYGWIN_OBJS:=$(cygwin_build)/smallprint.o $(cygwin_build)/version.o +CYGWIN_OBJS:=$(cygwin_build)/version.o CYGWIN_LIB:=$(cygwin_build)/libcygwin.a @@ -67,7 +67,7 @@ libclean: fullclean: clean libclean -cygserver.exe: $(CYGWIN_LIB) $(OBJS) $(CYGWIN_OBJS) strfuncs.o +cygserver.exe: $(CYGWIN_LIB) $(OBJS) $(CYGWIN_OBJS) $(CXX) -o $@ ${wordlist 2,999,$^} -L$(cygwin_build) -lntdll $(cygwin_build)/%.o: $(cygwin_source)/%.cc @@ -81,9 +81,6 @@ Makefile: Makefile.in configure lib%.o: %.cc ${filter-out -D__OUTSIDE_CYGWIN__, $(COMPILE_CXX)} -I$(updir)/cygwin -o $(@D)/${basename $(@F)}$o $< -strfuncs.o: $(cygwin_source)/strfuncs.cc - $(COMPILE_CXX) -I$(updir)/cygwin -o $(@D)/$(*F)$o $< - libcygserver.a: $(LIBOBJS) $(AR) crus $@ $? diff --git a/winsup/cygserver/bsd_log.cc b/winsup/cygserver/bsd_log.cc index 583b90557..78dcdb00c 100644 --- a/winsup/cygserver/bsd_log.cc +++ b/winsup/cygserver/bsd_log.cc @@ -11,7 +11,6 @@ details. */ #include "woutsup.h" #define _KERNEL 1 #define __BSD_VISIBLE 1 -#include #include #include @@ -53,14 +52,15 @@ _vlog (const char *file, int line, int level, const char *fmt, va_list ap) { char buf[16384]; + char *pos; if ((level == LOG_DEBUG && log_debug != TUN_TRUE) || (level != LOG_DEBUG && level >= log_level)) return; - strcpy (buf, "cygserver: "); + pos = stpcpy (buf, "cygserver: "); if (file && log_debug == TUN_TRUE) - __small_sprintf (strchr (buf, '\0'), "%s, line %d: ", file, line); - __small_vsprintf (strchr (buf, '\0'), fmt, ap); + pos += snprintf (pos, 16384 - (pos - buf), "%s, line %d: ", file, line); + vsnprintf (pos, 16384 - (pos - buf), fmt, ap); if (log_syslog == TUN_TRUE && level != LOG_DEBUG) syslog (level, buf); if (log_stderr == TUN_TRUE || level == LOG_DEBUG) diff --git a/winsup/cygserver/sysv_sem.cc b/winsup/cygserver/sysv_sem.cc index bee24abbd..274331564 100644 --- a/winsup/cygserver/sysv_sem.cc +++ b/winsup/cygserver/sysv_sem.cc @@ -12,6 +12,7 @@ #ifdef __OUTSIDE_CYGWIN__ #include "woutsup.h" +#include #include #include #ifndef __FBSDID @@ -247,8 +248,8 @@ seminit(void) } for (i = 0; i < seminfo.semmni; i++) { - char *buf = (char *)malloc (16); - __small_sprintf (buf, "semid[%d]", i); + char *buf = (char *) sys_malloc(16, M_SEM, M_WAITOK); + snprintf(buf, 16, "semid[%d]", i); mtx_init(&sema_mtx[i], buf, NULL, MTX_DEF); } for (i = 0; i < seminfo.semmnu; i++) { @@ -280,8 +281,10 @@ semunload(void) sys_free(sem, M_SEM); sys_free(sema, M_SEM); sys_free(semu, M_SEM); - for (int i = 0; i < seminfo.semmni; i++) + for (int i = 0; i < seminfo.semmni; i++) { + sys_free((void *) sema_mtx[i].name, M_SEM); mtx_destroy(&sema_mtx[i]); + } mtx_destroy(&sem_mtx); return (0); } -- cgit v1.2.3