haiku/src/system/runtime_loader/Jamfile
Ingo Weinhold 46f4d84912 * Got rid of sLoadingImages. It was always empty.
* The previous symbol resolution code was incorrect. It would search all
  loaded images in the order they had been loaded. Thus an add-on would
  possibly see a symbol of an earlier loaded add-on. Now we search
  recursively starting with the respective root image (executable or
  add-on).
* Added BeOS style symbol resolution and made it the default. A symbol
  undefined in an image is only searched in its direct dependencies.
  Fixes bug #889 (BeOS apps crashing under Haiku when opening a file
  panel).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21290 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-01 18:09:32 +00:00

77 lines
2.4 KiB
Plaintext

SubDir HAIKU_TOP src system runtime_loader ;
UsePrivateHeaders runtime_loader ;
UseHeaders $(TARGET_PRIVATE_KERNEL_HEADERS) : true ;
# Don't let gcc inject built-in function code. This will cause dependencies
# to libroot, which we don't link against.
SubDirCcFlags -fno-builtin ;
SubDirC++Flags -fno-builtin -fno-exceptions ;
# default to BeOS style symbol resolution
DEFINES += BEOS_STYLE_SYMBOLS_RESOLUTION ;
# needed for "runtime_loader" only
StaticLibrary libruntime_loader.a :
kernel_vsprintf.c
:
<src!system!libroot!os>syscalls.o
<src!system!libroot!os>sem.o
<src!system!libroot!os!arch!$(TARGET_ARCH)>atomic.o
<src!system!libroot!os!arch!$(TARGET_ARCH)>thread.o
<src!system!libroot!posix>errno.o
<src!system!libroot!posix!glibc!ctype>ctype-info.o
<src!system!libroot!posix!glibc!locale>C-ctype.o
<src!system!libroot!posix!glibc!locale>C_name.o
<src!system!libroot!posix!unistd>open.o
<src!system!libroot!posix!string>memchr.o
<src!system!libroot!posix!string>memcmp.o
<src!system!libroot!posix!string>memcpy.o
<src!system!libroot!posix!string>memmove.o
<src!system!libroot!posix!string>memset.o
<src!system!libroot!posix!string>strcasecmp.o
<src!system!libroot!posix!string>strcat.o
<src!system!libroot!posix!string>strchr.o
<src!system!libroot!posix!string>strcmp.o
<src!system!libroot!posix!string>strcpy.o
<src!system!libroot!posix!string>strcspn.o
<src!system!libroot!posix!string>strdup.o
<src!system!libroot!posix!string>strerror.o
<src!system!libroot!posix!string>strlcat.o
<src!system!libroot!posix!string>strlcpy.o
<src!system!kernel!lib>strlen.o
<src!system!libroot!posix!string>strncmp.o
<src!system!libroot!posix!string>strnlen.o
<src!system!libroot!posix!string>strpbrk.o
<src!system!libroot!posix!string>strrchr.o
<src!system!libroot!posix!string>strspn.o
<src!system!libroot!posix!string>strstr.o
<src!system!libroot!posix!string!arch!$(TARGET_ARCH)>arch_string.o
[ FGristFiles kernel_vsprintf.o ]
;
SEARCH on [ FGristFiles kernel_vsprintf.c ]
= [ FDirName $(HAIKU_TOP) src system kernel lib ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) arch $(TARGET_ARCH) ] ;
Objects
runtime_loader.c
elf.cpp
export.c
heap.cpp
utility.cpp
arch_relocate.c
;
Ld runtime_loader :
[ FGristFiles runtime_loader.o elf.o export.o heap.o utility.o arch_relocate.o ]
libruntime_loader.a
$(TARGET_GCC_LIBGCC)
: $(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/runtime_loader.ld
;