BFS: Add support for building big-endian BFS

I tried to use the feature stuff to relocate objects but didn't managed
to get it to work, having another subdir seems to be the simplest
solution.

I managed to mount a clone of my BeBox' drive, but it KDLed shortly when mouting
read-write.

Change-Id: Ia4f126673e553e4f3e524a40218e6c623527b96d
Reviewed-on: https://review.haiku-os.org/c/645
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
This commit is contained in:
François Revol 2018-10-27 01:25:16 +02:00 committed by waddlesplash
parent d3f27239b1
commit 88255e0890
4 changed files with 65 additions and 44 deletions

View File

@ -1,6 +1,7 @@
SubDir HAIKU_TOP src add-ons kernel file_systems ;
SubInclude HAIKU_TOP src add-ons kernel file_systems bfs ;
SubInclude HAIKU_TOP src add-ons kernel file_systems bfs_big ;
SubInclude HAIKU_TOP src add-ons kernel file_systems bindfs ;
SubInclude HAIKU_TOP src add-ons kernel file_systems btrfs ;
SubInclude HAIKU_TOP src add-ons kernel file_systems cdda ;

View File

@ -0,0 +1,59 @@
# Since we also build a big-endian version of BFS,
# this file is also included by the Jamfile in ../bfs_big/.
# set some additional defines
{
local defines =
BFS_DEBUGGER_COMMANDS
;
if $(SUBDIR:B) = bfs_big {
defines += BFS_BIG_ENDIAN_ONLY ;
SubDirHdrs $(HAIKU_TOP) src add-ons kernel file_systems bfs ;
}
if $(DEBUG) = 0 {
# the gcc on BeOS doesn't compile BFS correctly with -O2 or more
OPTIM = -O1 ;
}
defines = [ FDefines $(defines) ] ;
SubDirCcFlags $(defines) ;
SubDirC++Flags $(defines) ;
}
UsePrivateKernelHeaders ;
UsePrivateHeaders [ FDirName kernel disk_device_manager ] ;
UsePrivateHeaders shared storage ;
local bfsSources =
bfs_disk_system.cpp
BlockAllocator.cpp
BPlusTree.cpp
kernel_cpp.cpp
Attribute.cpp
CheckVisitor.cpp
Debug.cpp
FileSystemVisitor.cpp
Index.cpp
Inode.cpp
Journal.cpp
Query.cpp
QueryParserUtils.cpp
Volume.cpp
kernel_interface.cpp
;
KernelAddon $(SUBDIR:B) :
$(bfsSources)
;
SEARCH on [ FGristFiles $(bfsSources) ]
= [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems bfs ] ;
SEARCH on [ FGristFiles kernel_cpp.cpp ]
= [ FDirName $(HAIKU_TOP) src system kernel util ] ;
SEARCH on [ FGristFiles QueryParserUtils.cpp ]
+= [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems shared ] ;

View File

@ -1,47 +1,4 @@
SubDir HAIKU_TOP src add-ons kernel file_systems bfs ;
# set some additional defines
{
local defines =
BFS_DEBUGGER_COMMANDS
#BFS_BIG_ENDIAN_ONLY
;
include [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems bfs JamCommon ] ;
if $(DEBUG) = 0 {
# the gcc on BeOS doesn't compile BFS correctly with -O2 or more
OPTIM = -O1 ;
}
defines = [ FDefines $(defines) ] ;
SubDirCcFlags $(defines) ;
SubDirC++Flags $(defines) ;
}
UsePrivateKernelHeaders ;
UsePrivateHeaders [ FDirName kernel disk_device_manager ] ;
UsePrivateHeaders shared storage ;
KernelAddon bfs :
bfs_disk_system.cpp
BlockAllocator.cpp
BPlusTree.cpp
kernel_cpp.cpp
Attribute.cpp
CheckVisitor.cpp
Debug.cpp
FileSystemVisitor.cpp
Index.cpp
Inode.cpp
Journal.cpp
Query.cpp
QueryParserUtils.cpp
Volume.cpp
kernel_interface.cpp
;
SEARCH on [ FGristFiles kernel_cpp.cpp ]
= [ FDirName $(HAIKU_TOP) src system kernel util ] ;
SEARCH on [ FGristFiles QueryParserUtils.cpp ]
+= [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems shared ] ;

View File

@ -0,0 +1,4 @@
SubDir HAIKU_TOP src add-ons kernel file_systems bfs_big ;
include [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems bfs JamCommon ] ;