diff --git a/src/kernel/libsyscall/custom/var_errno.c b/src/kernel/libsyscall/custom/var_errno.c index df30127da..3eb96ac5c 100644 --- a/src/kernel/libsyscall/custom/var_errno.c +++ b/src/kernel/libsyscall/custom/var_errno.c @@ -4,6 +4,7 @@ __asm__(".section .bss\n" ".global darwin_errno\n" ".hidden darwin_errno\n" ".symver darwin_errno, errno@DARWIN\n" + ".comm darwin_errno, 4\n" "darwin_errno:\n" ".word 0\n"); #else diff --git a/src/libdyld/environ.c b/src/libdyld/environ.c index b356fc275..fd3f1eed7 100644 --- a/src/libdyld/environ.c +++ b/src/libdyld/environ.c @@ -1,13 +1,17 @@ #ifdef __x86_64__ __asm__(".section .bss\n" ".global __darwin_environ\n" + ".hidden __darwin_environ\n" ".symver __darwin_environ, environ@DARWIN\n" + "//.comm __darwin_environ, 8\n" "__darwin_environ:\n" ".quad 0\n"); #else __asm__(".section .bss\n" ".global __darwin_environ\n" + ".hidden __darwin_environ\n" ".symver __darwin_environ, environ@DARWIN\n" + "//.comm __darwin_environ, 4\n" "__darwin_environ:\n" ".word 0\n"); #endif diff --git a/src/libinfo/CMakeLists.txt b/src/libinfo/CMakeLists.txt index 8df5cdfc8..be57aa345 100644 --- a/src/libinfo/CMakeLists.txt +++ b/src/libinfo/CMakeLists.txt @@ -15,9 +15,10 @@ add_definitions(-DHAVE_STDINT_H=1) add_definitions(-D__APPLE__ -D__DYNAMIC__) add_definitions(-D__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__=1080) add_definitions(-Ddlopen=__darwin_dlopen -Ddlsym=__darwin_dlsym -Ddlclose=__darwin_dlclose) +add_definitions(-Dh_errno=__darwin_h_errno) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -nostdinc -D__DARWIN_UNIX03 -fPIC -w -ggdb") -set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -nostdlib -Wl,--unresolved-symbols=ignore-all -Wl,--version-script=${DARLING_TOP_DIRECTORY}/darwin.map") +set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -nostdlib -Wl,--unresolved-symbols=ignore-all -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/darwin.map") add_subdirectory(gen.subproj) add_subdirectory(util.subproj) diff --git a/src/libinfo/dns.subproj/herror.c b/src/libinfo/dns.subproj/herror.c index 4f4013ec5..4b7e9f930 100644 --- a/src/libinfo/dns.subproj/herror.c +++ b/src/libinfo/dns.subproj/herror.c @@ -73,7 +73,16 @@ const char * const h_errlist[] = { }; const int h_nerr = { sizeof h_errlist / sizeof h_errlist[0] }; +#ifndef DARLING int h_errno; +#else +__asm__(".section .bss\n" + ".global __darwin_h_errno\n" + ".symver __darwin_h_errno, h_errno@DARWIN\n" + ".comm __darwin_h_errno, 4\n" + "__darwin_h_errno:\n" + ".word 0\n"); +#endif /* * herror --