From 7ca5dc4232b9ac5ee5cd25c8b5b33a58904cd251 Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Wed, 2 Mar 2016 11:52:38 -0600 Subject: For years the man pages have said to #include to get major/minor/makedev, but glibc has vowed to break existing programs (https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html) and replace it with _another_ non-standard header (not in posix or lsb), so let's just add functions to lib/ that do the transform ourselves. --- toys/pending/mdev.c | 2 +- toys/pending/tar.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'toys/pending') diff --git a/toys/pending/mdev.c b/toys/pending/mdev.c index e7adc993..975d31da 100644 --- a/toys/pending/mdev.c +++ b/toys/pending/mdev.c @@ -190,7 +190,7 @@ found_device: if (strchr(device_name, '/')) mkpathat(AT_FDCWD, toybuf, 0, 2); - if (mknod(toybuf, mode | type, makedev(major, minor)) && errno != EEXIST) + if (mknod(toybuf, mode | type, dev_makedev(major, minor)) && errno != EEXIST) perror_exit("mknod %s failed", toybuf); diff --git a/toys/pending/tar.c b/toys/pending/tar.c index 4f4de0b5..c5043087 100644 --- a/toys/pending/tar.c +++ b/toys/pending/tar.c @@ -228,8 +228,8 @@ static void add_file(struct archive_handler *tar, char **nam, struct stat *st) else if (S_ISFIFO(st->st_mode)) hdr.type = '6'; else if (S_ISBLK(st->st_mode) || S_ISCHR(st->st_mode)) { hdr.type = (S_ISCHR(st->st_mode))?'3':'4'; - itoo(hdr.major, sizeof(hdr.major), major(st->st_rdev)); - itoo(hdr.minor, sizeof(hdr.minor), minor(st->st_rdev)); + itoo(hdr.major, sizeof(hdr.major), dev_major(st->st_rdev)); + itoo(hdr.minor, sizeof(hdr.minor), dev_minor(st->st_rdev)); } else { error_msg("unknown file type '%o'", st->st_mode & S_IFMT); return; @@ -623,7 +623,7 @@ CHECK_MAGIC: file_hdr->gname = xstrdup(tar.gname); maj = otoi(tar.major, sizeof(tar.major)); min = otoi(tar.minor, sizeof(tar.minor)); - file_hdr->device = makedev(maj, min); + file_hdr->device = dev_makedev(maj, min); if (tar.type <= '7') { if (tar.link[0]) { -- cgit v1.2.3