some make system work to get x86-64 linux compiles working:
-The biggest problem with linking host libraries (libbe_build and libroot_build) was not having the source files compiled with the -fPIC flag. As far as I can tell, we want to do this on all of the other host platforms as well, so hacked the jam files a bit to add it. Forgive me if I've committed more Jamfile sins. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21423 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
5acd132fa4
commit
4a9059fb38
|
@ -387,6 +387,9 @@ HOST_ASFLAGS = ;
|
||||||
HOST_CCFLAGS += -Wno-multichar ;
|
HOST_CCFLAGS += -Wno-multichar ;
|
||||||
HOST_C++FLAGS += -Wno-multichar ;
|
HOST_C++FLAGS += -Wno-multichar ;
|
||||||
|
|
||||||
|
HOST_PIC_CCFLAGS += -fPIC ;
|
||||||
|
HOST_PIC_C++FLAGS += -fPIC ;
|
||||||
|
|
||||||
HOST_KERNEL_CCFLAGS += -finline -fno-builtin
|
HOST_KERNEL_CCFLAGS += -finline -fno-builtin
|
||||||
-DBOCHS_DEBUG_HACK=$(BOCHS_DEBUG_HACK) -D_KERNEL_MODE ;
|
-DBOCHS_DEBUG_HACK=$(BOCHS_DEBUG_HACK) -D_KERNEL_MODE ;
|
||||||
HOST_KERNEL_C++FLAGS += -finline -fno-builtin -fno-exceptions
|
HOST_KERNEL_C++FLAGS += -finline -fno-builtin -fno-exceptions
|
||||||
|
|
|
@ -465,6 +465,10 @@ rule BuildPlatformSharedLibrary
|
||||||
LINKFLAGS on $(target) = [ on $(target) return $(LINKFLAGS) ]
|
LINKFLAGS on $(target) = [ on $(target) return $(LINKFLAGS) ]
|
||||||
-shared -Xlinker -soname=\"$(target:G=)\" ;
|
-shared -Xlinker -soname=\"$(target:G=)\" ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
local objects = [ FGristFiles $(sources:S=$(SUFOBJ)) ] ;
|
||||||
|
CCFLAGS on $(objects) += $(HOST_PIC_CCFLAGS) ;
|
||||||
|
C++FLAGS on $(objects) += $(HOST_PIC_C++FLAGS) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
rule BuildPlatformMergeObject
|
rule BuildPlatformMergeObject
|
||||||
|
@ -489,10 +493,32 @@ rule BuildPlatformMergeObject
|
||||||
# propagate the flag to the objects
|
# propagate the flag to the objects
|
||||||
USES_BE_API on $(objects) = $(usesBeAPI) ;
|
USES_BE_API on $(objects) = $(usesBeAPI) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
MergeObject $(target) : $(sources) : $(otherObjects) ;
|
MergeObject $(target) : $(sources) : $(otherObjects) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rule BuildPlatformMergeObjectPIC
|
||||||
|
{
|
||||||
|
# BuildPlatformMergeObjectPIC <name> : <sources> : <other objects> ;
|
||||||
|
# Compiles source files and merges the object files to an object file.
|
||||||
|
# Same as BuildPlatformMergeObject rule but adds position-independent
|
||||||
|
# flags to the compiler (if any).
|
||||||
|
# <name>: Name of the object file to create. No grist will be added.
|
||||||
|
# <sources>: Sources to be compiled. Grist will be added.
|
||||||
|
# <other objects>: Object files or static libraries to be merged. No grist
|
||||||
|
# will be added.
|
||||||
|
#
|
||||||
|
local target = $(1) ;
|
||||||
|
local sources = $(2) ;
|
||||||
|
local otherObjects = $(3) ;
|
||||||
|
|
||||||
|
local objects = [ FGristFiles $(sources:S=$(SUFOBJ)) ] ;
|
||||||
|
CCFLAGS on $(objects) += $(HOST_PIC_CCFLAGS) ;
|
||||||
|
C++FLAGS on $(objects) += $(HOST_PIC_C++FLAGS) ;
|
||||||
|
|
||||||
|
BuildPlatformMergeObject $(target) : $(sources) : $(otherObjects) ;
|
||||||
|
}
|
||||||
|
|
||||||
rule BuildPlatformStaticLibrary
|
rule BuildPlatformStaticLibrary
|
||||||
{
|
{
|
||||||
# BuildPlatformStaticLibrary <lib> : <sources> ;
|
# BuildPlatformStaticLibrary <lib> : <sources> ;
|
||||||
|
|
|
@ -5,7 +5,7 @@ UseHeaders [ FDirName $(HAIKU_TOP) headers build private shared ] : true ;
|
||||||
|
|
||||||
USES_BE_API on <libbe_build>app_kit.o = true ;
|
USES_BE_API on <libbe_build>app_kit.o = true ;
|
||||||
|
|
||||||
BuildPlatformMergeObject <libbe_build>app_kit.o :
|
BuildPlatformMergeObjectPIC <libbe_build>app_kit.o :
|
||||||
Application.cpp
|
Application.cpp
|
||||||
AppMisc.cpp
|
AppMisc.cpp
|
||||||
Message.cpp
|
Message.cpp
|
||||||
|
|
|
@ -6,7 +6,7 @@ UseHeaders [ FDirName $(HAIKU_TOP) headers build private shared ] : true ;
|
||||||
|
|
||||||
USES_BE_API on <libbe_build>interface_kit.o = true ;
|
USES_BE_API on <libbe_build>interface_kit.o = true ;
|
||||||
|
|
||||||
BuildPlatformMergeObject <libbe_build>interface_kit.o :
|
BuildPlatformMergeObjectPIC <libbe_build>interface_kit.o :
|
||||||
Bitmap.cpp
|
Bitmap.cpp
|
||||||
GraphicsDefs.cpp
|
GraphicsDefs.cpp
|
||||||
Point.cpp
|
Point.cpp
|
||||||
|
|
|
@ -9,7 +9,7 @@ SEARCH_SOURCE += [ FDirName $(SUBDIR) mime ] ;
|
||||||
|
|
||||||
USES_BE_API on <libbe_build>storage_kit.o = true ;
|
USES_BE_API on <libbe_build>storage_kit.o = true ;
|
||||||
|
|
||||||
BuildPlatformMergeObject <libbe_build>storage_kit.o :
|
BuildPlatformMergeObjectPIC <libbe_build>storage_kit.o :
|
||||||
AppFileInfo.cpp
|
AppFileInfo.cpp
|
||||||
Directory.cpp
|
Directory.cpp
|
||||||
Entry.cpp
|
Entry.cpp
|
||||||
|
|
|
@ -5,7 +5,7 @@ UseHeaders [ FDirName $(HAIKU_TOP) headers build private app ] : true ;
|
||||||
|
|
||||||
USES_BE_API on <libbe_build>support_kit.o = true ;
|
USES_BE_API on <libbe_build>support_kit.o = true ;
|
||||||
|
|
||||||
BuildPlatformMergeObject <libbe_build>support_kit.o :
|
BuildPlatformMergeObjectPIC <libbe_build>support_kit.o :
|
||||||
Archivable.cpp
|
Archivable.cpp
|
||||||
BlockCache.cpp
|
BlockCache.cpp
|
||||||
ByteOrder.cpp
|
ByteOrder.cpp
|
||||||
|
|
Loading…
Reference in New Issue