diff --git a/src/code/ppc-vm.lisp b/src/code/ppc-vm.lisp index 613353387060ab89bb10afa1b0c78168373b499c..fa977fd587c06849d71fd9a12fceb43e903481b0 100644 --- a/src/code/ppc-vm.lisp +++ b/src/code/ppc-vm.lisp @@ -297,10 +297,7 @@ ;;; (defun extern-alien-name (name) (declare (type simple-base-string name)) - #+darwin - (concatenate 'string "_" name) - #-darwin - (concatenate 'string "" name)) + name) #-linkage-table (defun lisp::foreign-symbol-address-aux (name flavor) diff --git a/src/lisp/Config.ppc_darwin b/src/lisp/Config.ppc_darwin index 4f066481266cf61c066df5ba941fde141b4dd523..871a26161bbe6dd541d50ece325b1a48822f6351 100644 --- a/src/lisp/Config.ppc_darwin +++ b/src/lisp/Config.ppc_darwin @@ -40,7 +40,8 @@ ASFLAGS = $(OSX_VERSION) -traditional -g -O3 -DDARWIN -Dppc $(LINKAGE) $(GENCGC) UNDEFSYMPATTERN = -Xlinker -u -Xlinker & ASSEM_SRC = ppc-assem.S linux-stubs.S ARCH_SRC = ppc-arch.c -OS_SRC = ppc-darwin-dlshim.c os-common.c Darwin-os.c +#OS_SRC = ppc-darwin-dlshim.c os-common.c Darwin-os.c +OS_SRC = os-common.c Darwin-os.c ifdef FEATURE_EXECUTABLE diff --git a/src/lisp/Darwin-os.c b/src/lisp/Darwin-os.c index 1f67b685fff79d4c000d3c12808f273687b2a8a6..0efb72f391f590e6a68c0159469f3b512effdce4 100644 --- a/src/lisp/Darwin-os.c +++ b/src/lisp/Darwin-os.c @@ -543,12 +543,21 @@ os_dlsym(const char *sym_name, lispobj lib_list) struct cons *lib_cons = CONS(CONS(lib_list_head)->car); struct sap *dlhandle = (struct sap *) PTR(lib_cons->car); +#if 0 && defined(__ppc__) + sym_addr = dlsym((void *) dlhandle->pointer, (sym_name[0] == '_' ? sym_name + 1 : sym_name)); +#else sym_addr = dlsym((void *) dlhandle->pointer, sym_name); +#endif if (sym_addr) return sym_addr; } } + +#if 0 && defined(__ppc__) + sym_addr = dlsym(program_handle, (sym_name[0] == '_' ? sym_name + 1 : sym_name)); +#else sym_addr = dlsym(program_handle, sym_name); +#endif return sym_addr; } diff --git a/src/lisp/os-common.c b/src/lisp/os-common.c index 90458c9509ed1e1897db74cd9d493ee108a9150f..b183d066a1203d8849f6d3636d48bca10fba3544 100755 --- a/src/lisp/os-common.c +++ b/src/lisp/os-common.c @@ -219,7 +219,7 @@ os_foreign_linkage_init(void) } arch_make_linkage_entry(i, (void*) call_into_c, 1); #elif (defined(DARWIN) && defined(__ppc__)) - if (type != 1 || strcmp(c_symbol_name, "_call_into_c")) { + if (type != 1 || strcmp(c_symbol_name, "call_into_c")) { fprintf(stderr, "linkage_data is %s but expected call_into_c\n", (char *) c_symbol_name); lose("First element of linkage_data is bogus.\n"); @@ -241,7 +241,7 @@ os_foreign_linkage_init(void) void *target_addr = os_dlsym(c_symbol_name, NIL); if (!target_addr) { -#if 0 +#if 1 int k; unsigned short int* wide_string; diff --git a/src/tools/cross-scripts/cross-ppc-ppc-darwin.lisp b/src/tools/cross-scripts/cross-ppc-ppc-darwin.lisp index 3be7ae6fcea3ebb8fe915aeb721f24b4f431d009..02e05ef98a638c1eac73bfe5c6aa5893191ef65f 100644 --- a/src/tools/cross-scripts/cross-ppc-ppc-darwin.lisp +++ b/src/tools/cross-scripts/cross-ppc-ppc-darwin.lisp @@ -31,7 +31,7 @@ (in-package :vm) (defun extern-alien-name (name) (declare (type simple-string name)) - (concatenate 'string "_" name)) + name) ;; When compiling the compiler, vm:fixup-code-object and ;; vm:sanctify-for-execution are undefined. Import these to get rid ;; of that error. @@ -199,7 +199,7 @@ (in-package :vm) (defun extern-alien-name (name) (declare (type simple-string name)) - (concatenate 'string "_" name)) + name) (export 'extern-alien-name) (export 'fixup-code-object) (export 'sanctify-for-execution)