Browse Source

Several little additions and cleanups. Add getw() and putw().
Add in some missing header files (netipx/ipx.h include/lastlog.h
include/sgtty.h include/sys/perm.h)
-Erik

Eric Andersen 20 years ago
parent
commit
53c4df1491

+ 8 - 6
Makefile

@@ -229,9 +229,11 @@ install_utils:
 ifeq ($(strip $(HAVE_SHARED)),true)
 	@$(MAKE) -C ldso utils
 	install -m 755 ldso/util/ldd $(PREFIX)$(DEVEL_PREFIX)/bin
-	install -m 755 ldso/util/readelf $(PREFIX)$(DEVEL_PREFIX)/bin
 	ln -fs $(DEVEL_PREFIX)/bin/ldd $(PREFIX)$(SYSTEM_DEVEL_PREFIX)/bin/$(TARGET_ARCH)-uclibc-ldd
-	ln -fs $(DEVEL_PREFIX)/bin/readelf $(PREFIX)$(SYSTEM_DEVEL_PREFIX)/bin/$(TARGET_ARCH)-uclibc-readelf
+	# For now, don't bother with readelf since surely the host
+	# system has binutils, or we couldn't have gotten this far...
+	#install -m 755 ldso/util/readelf $(PREFIX)$(DEVEL_PREFIX)/bin
+	#ln -fs $(DEVEL_PREFIX)/bin/readelf $(PREFIX)$(SYSTEM_DEVEL_PREFIX)/bin/$(TARGET_ARCH)-uclibc-readelf
 	@if [ -x ldso/util/ldconfig ] ; then \
 	    set -x -e; \
 	    install -d $(PREFIX)$(DEVEL_PREFIX)/etc; \
@@ -286,10 +288,10 @@ dist release: distclean
 	cd ..;					\
 	rm -rf uClibc-$(VERSION);		\
 	cp -a uClibc uClibc-$(VERSION);		\
-						\
-	find uClibc-$(VERSION)/ -type d	\
-				 -name CVS	\
-		-exec rm -rf {} \; ;            \
+	find uClibc-$(VERSION)/ -type d		\
+	    -name CVS -exec rm -rf {} \; ;	\
+	find uClibc-$(VERSION)/ -type d		\
+	    -name .\#* -exec rm -rf {} \; ;	\
 						\
 	tar -cvzf uClibc-$(VERSION).tar.gz --exclude CVS uClibc-$(VERSION)/;
 

+ 2 - 2
extra/gcc-uClibc/Makefile

@@ -19,10 +19,10 @@ gcc-uClibc.h: $(TOPDIR)/Config
 	@echo "/* this file was autogenerated by make */" > gcc-uClibc.h
 	@echo "#define UCLIBC_TARGET_PREFIX " \"$(TARGET_PREFIX)\" >> gcc-uClibc.h
 	@echo "#define UCLIBC_DEVEL_PREFIX " \"$(DEVEL_PREFIX)\" >> gcc-uClibc.h
-	@echo "#define UCLIBC_BUILD_DIR " \"$(UCLIBC_DIR)/\" >> gcc-uClibc.h
+	@echo "#define UCLIBC_BUILD_DIR " \"$(UCLIBC_DIR)\" >> gcc-uClibc.h
 	@echo "#define GCC_BIN " \"$(GCC_BIN)\" >> gcc-uClibc.h
 	@echo "#define GCC_LIB " \"$(GCC_LIB)\" >> gcc-uClibc.h
-	@echo "#define GCC_INCDIR " \"-I$(GCCINCDIR)/\" >> gcc-uClibc.h
+	@echo "#define GCC_INCDIR " \"-I$(GCCINCDIR)\" >> gcc-uClibc.h
 	@echo "#define TARGET_ARCH " \"$(TARGET_ARCH)\" >> gcc-uClibc.h
 	@echo "#define DYNAMIC_LINKER " \"$(DYNAMIC_LINKER)\" >> gcc-uClibc.h
 	@echo "#define BUILD_DYNAMIC_LINKER " \"$(UCLIBC_DIR)/lib/$(UCLIBC_LDSO)\" >> gcc-uClibc.h

+ 4 - 0
include/lastlog.h

@@ -0,0 +1,4 @@
+/* This header file is used in 4.3BSD to define `struct lastlog',
+   which we define in <bits/utmp.h>.  */
+
+#include <utmp.h>

+ 41 - 0
include/sgtty.h

@@ -0,0 +1,41 @@
+/* Copyright (C) 1991, 1992, 1996, 1998, 1999 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef	_SGTTY_H
+#define	_SGTTY_H	1
+
+#include <features.h>
+
+#include <sys/ioctl.h>
+
+/* On some systems this type is not defined by <bits/ioctl-types.h>;
+   in that case, the functions are just stubs that return ENOSYS.  */
+struct sgttyb;
+
+__BEGIN_DECLS
+
+/* Fill in *PARAMS with terminal parameters associated with FD.  */
+extern int gtty (int __fd, struct sgttyb *__params) __THROW;
+
+/* Set the terminal parameters associated with FD to *PARAMS.  */
+extern int stty (int __fd, __const struct sgttyb *__params) __THROW;
+
+
+__END_DECLS
+
+#endif /* sgtty.h  */

+ 36 - 0
include/sys/perm.h

@@ -0,0 +1,36 @@
+/* Copyright (C) 1996, 1999 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _SYS_PERM_H
+
+#define _SYS_PERM_H	1
+#include <features.h>
+
+__BEGIN_DECLS
+
+/* Set port input/output permissions.  */
+extern int ioperm (unsigned long int __from, unsigned long int __num,
+		   int __turn_on) __THROW;
+
+
+/* Change I/O privilege level.  */
+extern int iopl (int __level) __THROW;
+
+__END_DECLS
+
+#endif	/* _SYS_PERM_H */

+ 1 - 1
libc/stdio/Makefile

@@ -40,7 +40,7 @@ MSRC3=scanf.c
 MOBJ3=scanf.o sscanf.o fscanf.o vscanf.o vsscanf.o vfscanf.o
 
 CSRC=popen.c perror.c remove.c getdelim.c getline.c tmpfile.c tmpnam.c \
-     tmpnam_r.c tempnam.c ctermid.c
+     tmpnam_r.c tempnam.c ctermid.c getw.c putw.c
 COBJS=$(patsubst %.c,%.o, $(CSRC))
 OBJS=$(MOBJ) $(MOBJ2) $(MOBJ3) $(COBJS)
 

+ 36 - 0
libc/stdio/getw.c

@@ -0,0 +1,36 @@
+/* Copyright (C) 1991, 1997, 1998 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <stdio.h>
+
+#ifdef USE_IN_LIBIO
+# include <libio/iolibio.h>
+# define fread(p, m, n, s) _IO_fread (p, m, n, s)
+#endif
+
+/* Read a word (int) from STREAM.  */
+int
+getw (FILE *stream)
+{
+  int w;
+
+  /* Is there a better way?  */
+  if (fread ((void *) &w, sizeof (w), 1, stream) != 1)
+    return EOF;
+  return w;
+}

+ 34 - 0
libc/stdio/putw.c

@@ -0,0 +1,34 @@
+/* Copyright (C) 1991, 1997, 1998 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <stdio.h>
+
+#ifdef USE_IN_LIBIO
+# include <libio/iolibio.h>
+# define fwrite(p, n, m, s) _IO_fwrite (p, n, m, s)
+#endif
+
+/* Write the word (int) W to STREAM.  */
+int
+putw (int w, FILE *stream)
+{
+  /* Is there a better way?  */
+  if (fwrite ((const void *) &w, sizeof (w), 1, stream) < 1)
+    return EOF;
+  return 0;
+}

+ 16 - 0
libc/sysdeps/linux/common/syscalls.c

@@ -268,8 +268,24 @@ _syscall2(int, utime, const char *, filename, const struct utimbuf *, buf);
 #endif
 
 //#define __NR_stty             31
+#ifdef L_stty
+#include <sgtty.h>
+int stty (int __fd, __const struct sgttyb *__params);
+{
+	__set_errno(ENOSYS);
+	return -1;
+}
+#endif
 
 //#define __NR_gtty             32
+#ifdef L_gtty
+#include <sgtty.h>
+int gtty (int __fd, struct sgttyb *__params)
+{
+	__set_errno(ENOSYS);
+	return -1;
+}
+#endif
 
 //#define __NR_access           33
 #ifdef L_access