summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Rules.mak4
-rw-r--r--libc/misc/file/lockf.c5
2 files changed, 5 insertions, 4 deletions
diff --git a/Rules.mak b/Rules.mak
index 8943fbf85..9d621b5b7 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -804,6 +804,10 @@ ASFLAGS = $(ASFLAG_--noexecstack)
LIBGCC_CFLAGS ?= $(CFLAGS) $(CPU_CFLAGS-y)
$(eval $(call cache-output-var,LIBGCC,$(CC) $(LIBGCC_CFLAGS) -print-libgcc-file-name))
+$(eval $(call cache-output-var,LIBGCC_EH,$(CC) $(LIBGCC_CFLAGS) -print-file-name=libgcc_eh.a))
+# with -O0 we (e.g. lockf) might end up with references to
+# _Unwind_Resume, so pull in gcc_eh in this case..
+LIBGCC += $(if $(DODEBUG),$(LIBGCC_EH))
LIBGCC_DIR:=$(dir $(LIBGCC))
# moved from libpthread/linuxthreads
diff --git a/libc/misc/file/lockf.c b/libc/misc/file/lockf.c
index 4e398cd10..56b3aac77 100644
--- a/libc/misc/file/lockf.c
+++ b/libc/misc/file/lockf.c
@@ -16,15 +16,12 @@
see <http://www.gnu.org/licenses/>. */
#include <features.h>
-
#include <sys/types.h>
-#include <unistd.h>
#include <fcntl.h>
+#include <unistd.h>
#include <errno.h>
#include <string.h>
-
-
/* lockf is a simplified interface to fcntl's locking facilities. */
int lockf (int fd, int cmd, off_t len)