diff --git a/etc/dylib.conf b/etc/dylib.conf index 474a6f57e..2f7d3276d 100644 --- a/etc/dylib.conf +++ b/etc/dylib.conf @@ -10,5 +10,6 @@ /usr/lib/libz.dylib=libz.so /usr/lib/libbz2.1.0.dylib=libbz2.so /usr/lib/libbz2=libbz2.so +/usr/lib/libgcc_s.1.dylib=libgcc_s.so /usr/lib/libobjc.A.dylib=libobjc.so diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index db1c4d2df..90f5d8900 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -56,6 +56,7 @@ include_directories("${CMAKE_CURRENT_SOURCE_DIR}/duct/include") add_subdirectory(libc) add_subdirectory(libm) +add_subdirectory(libgcc) add_subdirectory(libinfo) add_subdirectory(libmalloc) add_subdirectory(libunwind) diff --git a/src/libgcc/CMakeLists.txt b/src/libgcc/CMakeLists.txt new file mode 100644 index 000000000..d751db874 --- /dev/null +++ b/src/libgcc/CMakeLists.txt @@ -0,0 +1,24 @@ +project(libgcc) + +cmake_minimum_required(VERSION 2.4.0) + +if(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +endif(COMMAND cmake_policy) + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostdinc") +set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -nostdlib -Wl,--version-script=${DARLING_TOP_DIRECTORY}/darwin.map") + +set(libgcc_sources + dummy.c +) + +SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib${SUFFIX}/darling") +SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) +SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + +add_library(gcc_s SHARED ${libgcc_sources}) +# target_link_libraries(gcc_s -lgcc) +# TODO: link against libcompiler_rt + +install(TARGETS gcc_s DESTINATION lib${SUFFIX}/darling) diff --git a/src/libgcc/dummy.c b/src/libgcc/dummy.c new file mode 100644 index 000000000..0a48c8647 --- /dev/null +++ b/src/libgcc/dummy.c @@ -0,0 +1,3 @@ +// For binary compatibility only +void mach_init_routine() {} +