svn commit: r202661 - head/lib/libc/gen

Ed Schouten ed at FreeBSD.org
Tue Jan 19 23:07:12 UTC 2010


Author: ed
Date: Tue Jan 19 23:07:12 2010
New Revision: 202661
URL: http://svn.freebsd.org/changeset/base/202661

Log:
  Revert r202447 by re-exposing the old uname(3) function.
  
  It makes hardly any sense to expose a symbol which should only be
  provided for binary compatibility, but it seems we don't have a lot of
  choice here. There are many autoconf scripts out there that try to
  create a binary that links against the old symbol to see whether
  uname(3) is present. These scripts fail to detect uname(3) now.
  
  It should be noted that the behaviour we implement is not against the
  standards:
  
  | The following shall be declared as a function and may also be defined
  | as a macro:
  |
  | int uname(struct utsname *);

Modified:
  head/lib/libc/gen/Symbol.map
  head/lib/libc/gen/uname.c

Modified: head/lib/libc/gen/Symbol.map
==============================================================================
--- head/lib/libc/gen/Symbol.map	Tue Jan 19 23:03:08 2010	(r202660)
+++ head/lib/libc/gen/Symbol.map	Tue Jan 19 23:07:12 2010	(r202661)
@@ -296,6 +296,7 @@ FBSD_1.0 {
 	tcflow;
 	ualarm;
 	ulimit;
+	uname;
 	unvis;
 	strunvis;
 	strunvisx;

Modified: head/lib/libc/gen/uname.c
==============================================================================
--- head/lib/libc/gen/uname.c	Tue Jan 19 23:03:08 2010	(r202660)
+++ head/lib/libc/gen/uname.c	Tue Jan 19 23:07:12 2010	(r202661)
@@ -33,15 +33,15 @@ static char sccsid[] = "From: @(#)uname.
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
+#define uname wrapped_uname
 #include <sys/param.h>
 #include <sys/sysctl.h>
 #include <sys/utsname.h>
 #include <errno.h>
+#undef uname
 
 int
-__uname(struct utsname *name)
+uname(struct utsname *name)
 {
 	return __xuname(32, name);
 }
-
-__sym_compat(uname, __uname, FBSD_1.0);


More information about the svn-src-head mailing list