Remove major/minor/makedev macros; patch busybox to match.

6 views
Skip to first unread message

Dan Cross

unread,
Nov 3, 2015, 4:23:01 PM11/3/15
to aka...@googlegroups.com
The following changes since commit 1165c2bda44b7f1fb3b776c0dc5b0fb4dd499961:

  Add networking unit tests (2015-11-03 12:00:38 -0500)

are available in the git repository at:

  g...@github.com:dancrossnyc/akaros.git glibc

for you to fetch changes up to cbb859db0acfac91105a238208028e92b27f00ed:

  Add empty akaros-specific sysmacros.h (XCC) (2015-11-03 16:20:28 -0500)

----------------------------------------------------------------
Dan Cross (2):
      Patch Busybox to use it's own version of major/minor/makedev macros
      Add empty akaros-specific sysmacros.h (XCC)

 tools/apps/busybox/akaros-patches/1.17.3/0006-busybox-major-minor-makedev.patch | 47 +++++++++++++++++++++++++++++++++++++++++++++++
 tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sys/sysmacros.h      |  2 ++
 2 files changed, 49 insertions(+)
 create mode 100644 tools/apps/busybox/akaros-patches/1.17.3/0006-busybox-major-minor-makedev.patch
 create mode 100644 tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sys/sysmacros.h

diff --git a/tools/apps/busybox/akaros-patches/1.17.3/0006-busybox-major-minor-makedev.patch b/tools/apps/busybox/akaros-patches/1.17.3/0006-busybox-major-minor-makedev.patch
new file mode 100644
index 0000000..f737780
--- /dev/null
+++ b/tools/apps/busybox/akaros-patches/1.17.3/0006-busybox-major-minor-makedev.patch
@@ -0,0 +1,47 @@
+diff -ur busybox-1.17.3-akaros-base/include/libbb.h busybox-1.17.3-akaros/include/libbb.h
+--- busybox-1.17.3-akaros-base/include/libbb.h 2015-11-03 16:05:17.610100657 -0500
++++ busybox-1.17.3-akaros/include/libbb.h 2015-11-03 16:10:35.950717057 -0500
+@@ -1265,8 +1265,20 @@
+ #ifdef __GLIBC__
+ /* At least glibc has horrendously large inline for this, so wrap it */
+ unsigned long long bb_makedev(unsigned int major, unsigned int minor) FAST_FUNC;
++unsigned int bb_major(unsigned long long dev) FAST_FUNC;
++unsigned int bb_minor(unsigned long long dev) FAST_FUNC;
++#ifdef makedev
+ #undef makedev
++#endif
+ #define makedev(a,b) bb_makedev(a,b)
++#ifdef major
++#undef major
++#endif
++#define major(a) bb_major(a)
++#ifdef minor
++#undef minor
++#endif
++#define minor(a) bb_minor(a)
+ #endif
+
+
+diff -ur busybox-1.17.3-akaros-base/libbb/makedev.c busybox-1.17.3-akaros/libbb/makedev.c
+--- busybox-1.17.3-akaros-base/libbb/makedev.c 2015-11-03 16:05:17.522098264 -0500
++++ busybox-1.17.3-akaros/libbb/makedev.c 2015-11-03 16:12:53.898427762 -0500
+@@ -19,6 +19,18 @@
+ unsigned long long FAST_FUNC bb_makedev(unsigned int major, unsigned int minor);
+ unsigned long long FAST_FUNC bb_makedev(unsigned int major, unsigned int minor)
+ {
+- return makedev(major, minor);
++ return ((major << 16) | minor);
++}
++
++unsigned int FAST_FUNC bb_major(unsigned long long dev);
++unsigned int FAST_FUNC bb_major(unsigned long long dev)
++{
++ return ((dev >> 16) & 0xFFFF);
++}
++
++unsigned int FAST_FUNC bb_minor(unsigned long long dev);
++unsigned int FAST_FUNC bb_minor(unsigned long long dev)
++{
++ return (dev & 0xFFFF);
+ }
+ #endif
diff --git a/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sys/sysmacros.h b/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sys/sysmacros.h
new file mode 100644
index 0000000..2b5223d
--- /dev/null
+++ b/tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/sys/sysmacros.h
@@ -0,0 +1,2 @@
+// This page intentionally left blank.
+#pragma once

Barret Rhoden

unread,
Nov 10, 2015, 11:15:10 AM11/10/15
to aka...@googlegroups.com
Thanks, merged to staging at bd12c9c87fcc..4402cbebfec6 (from, to]

You can see the entire diff with 'git diff' or at
https://github.com/brho/akaros/compare/bd12c9c87fcc...4402cbebfec6


FYI - people need to rebuild glibc and then busybox. The easiest, but
slowest, way is to make xcc-upgrade-from-scratch.
Reply all
Reply to author
Forward
0 new messages