diff options
author | Duncaen <mail@duncano.de> | 2015-10-25 14:37:11 +0100 |
---|---|---|
committer | Duncaen <mail@duncano.de> | 2015-10-25 14:37:11 +0100 |
commit | d49889d24686fff901392b6dd1f9c6a5214e8464 (patch) | |
tree | 3e9e40cad8a5cf976c331e850e6c423f24e0d1ae | |
parent | fix struct stat64 problem for musl libc (diff) | |
download | firejail-d49889d24686fff901392b6dd1f9c6a5214e8464.tar.gz firejail-d49889d24686fff901392b6dd1f9c6a5214e8464.tar.zst firejail-d49889d24686fff901392b6dd1f9c6a5214e8464.zip |
Revert "fix struct stat64 problem for musl libc"
This reverts commit 801164566924c41d18d66bdc9ca8b2305103fb82.
-rwxr-xr-x | configure | 23 | ||||
-rw-r--r-- | configure.ac | 15 | ||||
-rw-r--r-- | src/libtrace/Makefile.in | 3 | ||||
-rw-r--r-- | src/libtrace/libtrace.c | 14 | ||||
-rw-r--r-- | src/libtrace/musl_defs.h | 52 |
5 files changed, 7 insertions, 100 deletions
@@ -628,7 +628,6 @@ HAVE_SECCOMP_H | |||
628 | EGREP | 628 | EGREP |
629 | GREP | 629 | GREP |
630 | CPP | 630 | CPP |
631 | HAVE_MUSL_LIBC | ||
632 | HAVE_FATAL_WARNINGS | 631 | HAVE_FATAL_WARNINGS |
633 | HAVE_BIND | 632 | HAVE_BIND |
634 | HAVE_CHROOT | 633 | HAVE_CHROOT |
@@ -689,7 +688,6 @@ enable_seccomp | |||
689 | enable_chroot | 688 | enable_chroot |
690 | enable_bind | 689 | enable_bind |
691 | enable_fatal_warnings | 690 | enable_fatal_warnings |
692 | enable_musl_libc | ||
693 | ' | 691 | ' |
694 | ac_precious_vars='build_alias | 692 | ac_precious_vars='build_alias |
695 | host_alias | 693 | host_alias |
@@ -1309,11 +1307,10 @@ Optional Features: | |||
1309 | --disable-option-checking ignore unrecognized --enable/--with options | 1307 | --disable-option-checking ignore unrecognized --enable/--with options |
1310 | --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) | 1308 | --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) |
1311 | --enable-FEATURE[=ARG] include FEATURE [ARG=yes] | 1309 | --enable-FEATURE[=ARG] include FEATURE [ARG=yes] |
1312 | --disable-seccomp disable seccomp | 1310 | --disable-seccomp Disable seccomp |
1313 | --disable-chroot disable chroot | 1311 | --disable-chroot Disable chroot |
1314 | --disable-bind disable bind | 1312 | --disable-bind Disable bind |
1315 | --enable-fatal-warnings -W -Wall -Werror | 1313 | --enable-fatal-warnings -W -Wall -Werror |
1316 | --enable-musl-libc ugly hack to allow compilation with musl libc | ||
1317 | 1314 | ||
1318 | Some influential environment variables: | 1315 | Some influential environment variables: |
1319 | CC C compiler command | 1316 | CC C compiler command |
@@ -3103,19 +3100,6 @@ if test "x$enable_fatal_warnings" = "xyes"; then : | |||
3103 | 3100 | ||
3104 | fi | 3101 | fi |
3105 | 3102 | ||
3106 | HAVE_MUSL_LIBC="" | ||
3107 | # Check whether --enable-musl_libc was given. | ||
3108 | if test "${enable_musl_libc+set}" = set; then : | ||
3109 | enableval=$enable_musl_libc; | ||
3110 | fi | ||
3111 | |||
3112 | if test "x$enable_musl_libc" = "xyes"; then : | ||
3113 | |||
3114 | HAVE_MUSL_LIBC="-DHAVE_MUSL_LIBC" | ||
3115 | |||
3116 | |||
3117 | fi | ||
3118 | |||
3119 | # checking pthread library | 3103 | # checking pthread library |
3120 | 3104 | ||
3121 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5 | 3105 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5 |
@@ -4752,5 +4736,4 @@ echo " <linux/seccomp.h>: $HAVE_SECCOMP_H" | |||
4752 | echo " chroot: $HAVE_CHROOT" | 4736 | echo " chroot: $HAVE_CHROOT" |
4753 | echo " bind: $HAVE_BIND" | 4737 | echo " bind: $HAVE_BIND" |
4754 | echo " fatal warnings: $HAVE_FATAL_WARNINGS" | 4738 | echo " fatal warnings: $HAVE_FATAL_WARNINGS" |
4755 | echo " musl libc: $HAVE_MUSL_LIBC" | ||
4756 | echo | 4739 | echo |
diff --git a/configure.ac b/configure.ac index 52048757c..b2fa22fd7 100644 --- a/configure.ac +++ b/configure.ac | |||
@@ -11,7 +11,7 @@ AC_PROG_RANLIB | |||
11 | 11 | ||
12 | HAVE_SECCOMP="" | 12 | HAVE_SECCOMP="" |
13 | AC_ARG_ENABLE([seccomp], | 13 | AC_ARG_ENABLE([seccomp], |
14 | AS_HELP_STRING([--disable-seccomp], [disable seccomp])) | 14 | AS_HELP_STRING([--disable-seccomp], [Disable seccomp])) |
15 | AS_IF([test "x$enable_seccomp" != "xno"], [ | 15 | AS_IF([test "x$enable_seccomp" != "xno"], [ |
16 | HAVE_SECCOMP="-DHAVE_SECCOMP" | 16 | HAVE_SECCOMP="-DHAVE_SECCOMP" |
17 | AC_SUBST(HAVE_SECCOMP) | 17 | AC_SUBST(HAVE_SECCOMP) |
@@ -19,7 +19,7 @@ AS_IF([test "x$enable_seccomp" != "xno"], [ | |||
19 | 19 | ||
20 | HAVE_CHROOT="" | 20 | HAVE_CHROOT="" |
21 | AC_ARG_ENABLE([chroot], | 21 | AC_ARG_ENABLE([chroot], |
22 | AS_HELP_STRING([--disable-chroot], [disable chroot])) | 22 | AS_HELP_STRING([--disable-chroot], [Disable chroot])) |
23 | AS_IF([test "x$enable_chroot" != "xno"], [ | 23 | AS_IF([test "x$enable_chroot" != "xno"], [ |
24 | HAVE_CHROOT="-DHAVE_CHROOT" | 24 | HAVE_CHROOT="-DHAVE_CHROOT" |
25 | AC_SUBST(HAVE_CHROOT) | 25 | AC_SUBST(HAVE_CHROOT) |
@@ -27,7 +27,7 @@ AS_IF([test "x$enable_chroot" != "xno"], [ | |||
27 | 27 | ||
28 | HAVE_BIND="" | 28 | HAVE_BIND="" |
29 | AC_ARG_ENABLE([bind], | 29 | AC_ARG_ENABLE([bind], |
30 | AS_HELP_STRING([--disable-bind], [disable bind])) | 30 | AS_HELP_STRING([--disable-bind], [Disable bind])) |
31 | AS_IF([test "x$enable_bind" != "xno"], [ | 31 | AS_IF([test "x$enable_bind" != "xno"], [ |
32 | HAVE_BIND="-DHAVE_BIND" | 32 | HAVE_BIND="-DHAVE_BIND" |
33 | AC_SUBST(HAVE_BIND) | 33 | AC_SUBST(HAVE_BIND) |
@@ -41,14 +41,6 @@ AS_IF([test "x$enable_fatal_warnings" = "xyes"], [ | |||
41 | AC_SUBST(HAVE_FATAL_WARNINGS) | 41 | AC_SUBST(HAVE_FATAL_WARNINGS) |
42 | ]) | 42 | ]) |
43 | 43 | ||
44 | HAVE_MUSL_LIBC="" | ||
45 | AC_ARG_ENABLE([musl_libc], | ||
46 | AS_HELP_STRING([--enable-musl-libc], [ugly hack to allow compilation with musl libc])) | ||
47 | AS_IF([test "x$enable_musl_libc" = "xyes"], [ | ||
48 | HAVE_MUSL_LIBC="-DHAVE_MUSL_LIBC" | ||
49 | AC_SUBST(HAVE_MUSL_LIBC) | ||
50 | ]) | ||
51 | |||
52 | # checking pthread library | 44 | # checking pthread library |
53 | AC_CHECK_LIB([pthread], [main], [], AC_MSG_ERROR([*** POSIX thread support not installed ***])) | 45 | AC_CHECK_LIB([pthread], [main], [], AC_MSG_ERROR([*** POSIX thread support not installed ***])) |
54 | AC_CHECK_HEADER(pthread.h,,AC_MSG_ERROR([*** POSIX thread support not installed ***])) | 46 | AC_CHECK_HEADER(pthread.h,,AC_MSG_ERROR([*** POSIX thread support not installed ***])) |
@@ -65,5 +57,4 @@ echo " <linux/seccomp.h>: $HAVE_SECCOMP_H" | |||
65 | echo " chroot: $HAVE_CHROOT" | 57 | echo " chroot: $HAVE_CHROOT" |
66 | echo " bind: $HAVE_BIND" | 58 | echo " bind: $HAVE_BIND" |
67 | echo " fatal warnings: $HAVE_FATAL_WARNINGS" | 59 | echo " fatal warnings: $HAVE_FATAL_WARNINGS" |
68 | echo " musl libc: $HAVE_MUSL_LIBC" | ||
69 | echo | 60 | echo |
diff --git a/src/libtrace/Makefile.in b/src/libtrace/Makefile.in index 8bc57cddf..3924bdf3f 100644 --- a/src/libtrace/Makefile.in +++ b/src/libtrace/Makefile.in | |||
@@ -2,13 +2,12 @@ PREFIX=@prefix@ | |||
2 | VERSION=@PACKAGE_VERSION@ | 2 | VERSION=@PACKAGE_VERSION@ |
3 | NAME=@PACKAGE_NAME@ | 3 | NAME=@PACKAGE_NAME@ |
4 | HAVE_FATAL_WARNINGS=@HAVE_FATAL_WARNINGS@ | 4 | HAVE_FATAL_WARNINGS=@HAVE_FATAL_WARNINGS@ |
5 | HAVE_MUSL_LIBC=@HAVE_MUSL_LIBC@ | ||
6 | 5 | ||
7 | H_FILE_LIST = $(wildcard *.[h]) | 6 | H_FILE_LIST = $(wildcard *.[h]) |
8 | C_FILE_LIST = $(wildcard *.c) | 7 | C_FILE_LIST = $(wildcard *.c) |
9 | OBJS = $(C_FILE_LIST:.c=.o) | 8 | OBJS = $(C_FILE_LIST:.c=.o) |
10 | BINOBJS = $(foreach file, $(OBJS), $file) | 9 | BINOBJS = $(foreach file, $(OBJS), $file) |
11 | CFLAGS += -ggdb $(HAVE_FATAL_WARNINGS) -O2 -DVERSION='"$(VERSION)"' $(HAVE_MUSL_LIBC) -fstack-protector-all -D_FORTIFY_SOURCE=2 -fPIC -Wformat -Wformat-security | 10 | CFLAGS += -ggdb $(HAVE_FATAL_WARNINGS) -O2 -DVERSION='"$(VERSION)"' -fstack-protector-all -D_FORTIFY_SOURCE=2 -fPIC -Wformat -Wformat-security |
12 | LDFLAGS += -pie -Wl,-z,relro -Wl,-z,now | 11 | LDFLAGS += -pie -Wl,-z,relro -Wl,-z,now |
13 | 12 | ||
14 | all: libtrace.so | 13 | all: libtrace.so |
diff --git a/src/libtrace/libtrace.c b/src/libtrace/libtrace.c index 2ce74d331..1eb1cf931 100644 --- a/src/libtrace/libtrace.c +++ b/src/libtrace/libtrace.c | |||
@@ -18,11 +18,7 @@ | |||
18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
19 | */ | 19 | */ |
20 | #define _GNU_SOURCE | 20 | #define _GNU_SOURCE |
21 | #ifdef HAVE_MUSL_LIBC | ||
22 | #include "musl_defs.h" | ||
23 | #else | ||
24 | #include <stdio.h> | 21 | #include <stdio.h> |
25 | #endif | ||
26 | #include <stdlib.h> | 22 | #include <stdlib.h> |
27 | #include <string.h> | 23 | #include <string.h> |
28 | #include <dlfcn.h> | 24 | #include <dlfcn.h> |
@@ -32,9 +28,7 @@ | |||
32 | #include <netinet/in.h> | 28 | #include <netinet/in.h> |
33 | #include <arpa/inet.h> | 29 | #include <arpa/inet.h> |
34 | #include <sys/un.h> | 30 | #include <sys/un.h> |
35 | #ifndef HAVE_MUSL_LIBC | ||
36 | #include <sys/stat.h> | 31 | #include <sys/stat.h> |
37 | #endif | ||
38 | 32 | ||
39 | // break recursivity on fopen call | 33 | // break recursivity on fopen call |
40 | typedef FILE *(*orig_fopen_t)(const char *pathname, const char *mode); | 34 | typedef FILE *(*orig_fopen_t)(const char *pathname, const char *mode); |
@@ -420,17 +414,9 @@ int stat(const char *pathname, struct stat *buf) { | |||
420 | return rv; | 414 | return rv; |
421 | } | 415 | } |
422 | 416 | ||
423 | #ifdef HAVE_MUSL_LIBC | ||
424 | typedef int (*orig_stat64_t)(const char *pathname, struct stat *buf); | ||
425 | #else | ||
426 | typedef int (*orig_stat64_t)(const char *pathname, struct stat64 *buf); | 417 | typedef int (*orig_stat64_t)(const char *pathname, struct stat64 *buf); |
427 | #endif | ||
428 | static orig_stat64_t orig_stat64 = NULL; | 418 | static orig_stat64_t orig_stat64 = NULL; |
429 | #ifdef HAVE_MUSL_LIBC | ||
430 | int stat64(const char *pathname, struct stat *buf) { | ||
431 | #else | ||
432 | int stat64(const char *pathname, struct stat64 *buf) { | 419 | int stat64(const char *pathname, struct stat64 *buf) { |
433 | #endif | ||
434 | if (!orig_stat) | 420 | if (!orig_stat) |
435 | orig_stat64 = (orig_stat64_t)dlsym(RTLD_NEXT, "stat"); | 421 | orig_stat64 = (orig_stat64_t)dlsym(RTLD_NEXT, "stat"); |
436 | 422 | ||
diff --git a/src/libtrace/musl_defs.h b/src/libtrace/musl_defs.h deleted file mode 100644 index 02eb65b83..000000000 --- a/src/libtrace/musl_defs.h +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2014, 2015 Firejail Authors | ||
3 | * | ||
4 | * This file is part of firejail project | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License along | ||
17 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||
19 | */ | ||
20 | |||
21 | #ifndef _MUSL_DEFS_H | ||
22 | #define _MUSL_DEFS_H | ||
23 | |||
24 | #include <features.h> | ||
25 | |||
26 | #define __NEED_FILE | ||
27 | #define __NEED_dev_t | ||
28 | #define __NEED_ino_t | ||
29 | #define __NEED_mode_t | ||
30 | #define __NEED_nlink_t | ||
31 | #define __NEED_uid_t | ||
32 | #define __NEED_gid_t | ||
33 | #define __NEED_off_t | ||
34 | #define __NEED_time_t | ||
35 | #define __NEED_blksize_t | ||
36 | #define __NEED_blkcnt_t | ||
37 | #define __NEED_struct_timespec | ||
38 | |||
39 | #include <bits/alltypes.h> | ||
40 | #include <bits/stat.h> | ||
41 | |||
42 | #ifdef __cplusplus | ||
43 | #define NULL 0L | ||
44 | #else | ||
45 | #define NULL ((void*)0) | ||
46 | #endif | ||
47 | |||
48 | int printf(const char *format, ...); | ||
49 | int sprintf(char *buffer, const char *format, ...); | ||
50 | char *fgets(char *buffer, int size, FILE *fp); | ||
51 | |||
52 | #endif | ||