From 9bf1f552d98d2f0550f2db30597e70865b7fc529 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sun, 1 Apr 2007 17:05:26 +0000 Subject: [PATCH] Enabled setjmp()/longjmp() support in the kernel. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20499 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/Jamfile | 1 + src/system/kernel/lib/Jamfile | 11 +++++++++++ .../kernel/lib/kernel_setjmp_save_sigs.c | 18 ++++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 src/system/kernel/lib/kernel_setjmp_save_sigs.c diff --git a/src/system/kernel/Jamfile b/src/system/kernel/Jamfile index b797582fee..729fb39d0a 100644 --- a/src/system/kernel/Jamfile +++ b/src/system/kernel/Jamfile @@ -71,6 +71,7 @@ KernelLd kernel_$(TARGET_ARCH) : kernel_os_main.o kernel_os_arch_$(TARGET_ARCH).o kernel_posix.o + kernel_posix_arch_$(TARGET_ARCH).o $(HAIKU_STATIC_LIBSUPC++) diff --git a/src/system/kernel/lib/Jamfile b/src/system/kernel/lib/Jamfile index 303f559bde..fa3bea133d 100644 --- a/src/system/kernel/lib/Jamfile +++ b/src/system/kernel/lib/Jamfile @@ -118,3 +118,14 @@ KernelMergeObject kernel_os_arch_$(TARGET_ARCH).o : : $(TARGET_KERNEL_PIC_CCFLAGS) ; + +SEARCH_SOURCE += [ FDirName $(posixSources) arch $(TARGET_ARCH) ] ; + +KernelMergeObject kernel_posix_arch_$(TARGET_ARCH).o : + setjmp.S + siglongjmp.S + sigsetjmp.S + kernel_setjmp_save_sigs.c + + : $(TARGET_KERNEL_PIC_CCFLAGS) +; diff --git a/src/system/kernel/lib/kernel_setjmp_save_sigs.c b/src/system/kernel/lib/kernel_setjmp_save_sigs.c new file mode 100644 index 0000000000..dff6bae0ba --- /dev/null +++ b/src/system/kernel/lib/kernel_setjmp_save_sigs.c @@ -0,0 +1,18 @@ +/* +** Copyright 2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved. +** Distributed under the terms of the Haiku License. +*/ + + +#include + + +/** This function is called by sigsetjmp() only */ + +int __setjmp_save_sigs(jmp_buf buffer, int saveMask); + +int +__setjmp_save_sigs(jmp_buf buffer, int saveMask) +{ + return 0; +}