summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--sysdeps/unix/sysv/linux/sys/sysmacros.h6
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index d7fa0d48a5..30829e6f0b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+1999-06-07  Ulrich Drepper  <drepper@cygnus.com>
+
+	* sysdeps/unix/sysv/linux/sys/sysmacros.h (makedev): Handle signed
+	parameters.
+
 1999-06-06  Ulrich Drepper  <drepper@cygnus.com>
 
 	* sysdeps/unix/sysv/linux/kernel-features.h: Define
diff --git a/sysdeps/unix/sysv/linux/sys/sysmacros.h b/sysdeps/unix/sysv/linux/sys/sysmacros.h
index 4c065393a6..63c1343284 100644
--- a/sysdeps/unix/sysv/linux/sys/sysmacros.h
+++ b/sysdeps/unix/sysv/linux/sys/sysmacros.h
@@ -27,11 +27,13 @@
 #if defined __GNUC__ && __GNUC__ >= 2
 # define major(dev) ((int)(((dev) >> 8) & 0xff))
 # define minor(dev) ((int)((dev) & 0xff))
-# define makedev(major, minor) (((major) << 8) | (minor))
+# define makedev(major, minor) ((((unsigned int) (major)) << 8) \
+				| ((unsigned int) (minor)))
 #else
 # define major(dev) (((dev).__val[0] >> 8) & 0xff)
 # define minor(dev) ((dev).__val[0] & 0xff)
-# define makedev(major, minor) { (((major) << 8) | (minor)), 0 }
+# define makedev(major, minor) { ((((unsigned int) (major)) << 8) \
+				  | ((unsigned int) (minor))), 0 }
 #endif
 
 #endif /* sys/sysmacros.h */