hrev46054 adds 3 changesets to branch 'master' old head: 9d79ce816bf1f11f1217ad93c0f126b39d46457a new head: ef5e0ba9384ca25a5b367806fd0c071dc9337813 overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=ef5e0ba+%5E9d79ce8 ---------------------------------------------------------------------------- 90742b5: ARM: boot: pass boot disk identifier This to stop the vfs_boot.cpp code from complaining. 20d9063: debugger/debuganalyzer: Remove the explicit -Werror from Jamfile Specifying -Werror in the Jamfiles directly prevents the build system from disabling error-on-warning for some arch specific warnings (or even globally), breaking the ARM build. The "src/apps" directory is already setup to compile with -Werror by the build system anyway, so remove the explicit setting here. ef5e0ba: ARM: stub out missing int64 atomic functions Also, add an item to the TODO list for this. Really need to figure it out soon... [ Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> ] ---------------------------------------------------------------------------- 16 files changed, 43 insertions(+), 110 deletions(-) docs/develop/ports/arm/todo.txt | 5 ++ src/apps/debuganalyzer/gui/Jamfile | 3 - src/apps/debuganalyzer/gui/chart/Jamfile | 3 - src/apps/debuganalyzer/gui/main_window/Jamfile | 3 - src/apps/debuganalyzer/gui/table/Jamfile | 3 - src/apps/debuganalyzer/gui/thread_window/Jamfile | 3 - src/apps/debuganalyzer/model/Jamfile | 3 - src/apps/debuganalyzer/model_loader/Jamfile | 3 - src/apps/debuganalyzer/util/Jamfile | 3 - src/apps/debugger/Jamfile | 3 - src/apps/debugger/arch/x86/disasm/Jamfile | 3 - src/apps/debugger/arch/x86_64/disasm/Jamfile | 3 - src/apps/debugger/demangler/Jamfile | 3 - src/apps/debugger/dwarf/Jamfile | 3 - src/system/boot/platform/u-boot/devices.cpp | 20 ++++- src/system/libroot/os/arch/arm/atomic.S | 89 +++++--------------- ############################################################################ Commit: 90742b59beae32ae47a3949339080a309f5a36f3 URL: http://cgit.haiku-os.org/haiku/commit/?id=90742b5 Author: Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> Date: Sat Sep 14 18:28:54 2013 UTC ARM: boot: pass boot disk identifier This to stop the vfs_boot.cpp code from complaining. ---------------------------------------------------------------------------- diff --git a/src/system/boot/platform/u-boot/devices.cpp b/src/system/boot/platform/u-boot/devices.cpp index 650211b..ac380a7 100644 --- a/src/system/boot/platform/u-boot/devices.cpp +++ b/src/system/boot/platform/u-boot/devices.cpp @@ -5,10 +5,12 @@ #include <KernelExport.h> -#include <boot/platform.h> + +#include <boot/disk_identifier.h> #include <boot/vfs.h> -#include <boot/stdio.h> +#include <boot/platform.h> #include <boot/stage2.h> +#include <boot/stdio.h> #define TRACE_DEVICES #ifdef TRACE_DEVICES @@ -73,6 +75,18 @@ platform_add_block_devices(stage2_args *args, NodeList *devicesList) status_t platform_register_boot_device(Node *device) { - TRACE("platform_register_boot_device\n"); + disk_identifier disk_ident; + disk_ident.bus_type = UNKNOWN_BUS; + disk_ident.device_type = UNKNOWN_DEVICE; + disk_ident.device.unknown.size = device->Size(); + + for (int32 i = 0; i < NUM_DISK_CHECK_SUMS; i++) { + disk_ident.device.unknown.check_sums[i].offset = -1; + disk_ident.device.unknown.check_sums[i].sum = 0; + } + + gBootVolume.SetData(BOOT_VOLUME_DISK_IDENTIFIER, B_RAW_TYPE, + &disk_ident, sizeof(disk_ident)); + return B_OK; } ############################################################################ Commit: 20d9063c36be668dcf5519c7aa7baf249c2e79a7 URL: http://cgit.haiku-os.org/haiku/commit/?id=20d9063 Author: Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> Date: Sun Sep 15 01:47:40 2013 UTC debugger/debuganalyzer: Remove the explicit -Werror from Jamfile Specifying -Werror in the Jamfiles directly prevents the build system from disabling error-on-warning for some arch specific warnings (or even globally), breaking the ARM build. The "src/apps" directory is already setup to compile with -Werror by the build system anyway, so remove the explicit setting here. ---------------------------------------------------------------------------- diff --git a/src/apps/debuganalyzer/gui/Jamfile b/src/apps/debuganalyzer/gui/Jamfile index a3b7e5b..fafe255 100644 --- a/src/apps/debuganalyzer/gui/Jamfile +++ b/src/apps/debuganalyzer/gui/Jamfile @@ -5,9 +5,6 @@ UsePrivateSystemHeaders ; UseHeaders $(HAIKU_DEBUG_ANALYZER_HEADERS) ; -CCFLAGS += -Werror ; -C++FLAGS += -Werror ; - MergeObject DebugAnalyzer_gui.o : AbstractGeneralPage.cpp diff --git a/src/apps/debuganalyzer/gui/chart/Jamfile b/src/apps/debuganalyzer/gui/chart/Jamfile index b249153..6a611cd 100644 --- a/src/apps/debuganalyzer/gui/chart/Jamfile +++ b/src/apps/debuganalyzer/gui/chart/Jamfile @@ -4,9 +4,6 @@ UsePrivateHeaders shared ; UseHeaders $(HAIKU_DEBUG_ANALYZER_HEADERS) ; -CCFLAGS += -Werror ; -C++FLAGS += -Werror ; - MergeObject DebugAnalyzer_gui_chart.o : BigtimeChartAxisLegendSource.cpp diff --git a/src/apps/debuganalyzer/gui/main_window/Jamfile b/src/apps/debuganalyzer/gui/main_window/Jamfile index d045a19..2479331 100644 --- a/src/apps/debuganalyzer/gui/main_window/Jamfile +++ b/src/apps/debuganalyzer/gui/main_window/Jamfile @@ -7,9 +7,6 @@ UseHeaders $(HAIKU_DEBUG_ANALYZER_HEADERS) ; UseHeaders [ FDirName $(HAIKU_TOP) src apps debugger util ] ; -CCFLAGS += -Werror ; -C++FLAGS += -Werror ; - MergeObject DebugAnalyzer_gui_main_window.o : GeneralPage.cpp diff --git a/src/apps/debuganalyzer/gui/table/Jamfile b/src/apps/debuganalyzer/gui/table/Jamfile index f55bca6..da838b9 100644 --- a/src/apps/debuganalyzer/gui/table/Jamfile +++ b/src/apps/debuganalyzer/gui/table/Jamfile @@ -5,9 +5,6 @@ UsePrivateSystemHeaders ; UseHeaders $(HAIKU_DEBUG_ANALYZER_HEADERS) ; -CCFLAGS += -Werror ; -C++FLAGS += -Werror ; - MergeObject DebugAnalyzer_gui_table.o : AbstractTable.cpp diff --git a/src/apps/debuganalyzer/gui/thread_window/Jamfile b/src/apps/debuganalyzer/gui/thread_window/Jamfile index 3e171d0..5a96ee6 100644 --- a/src/apps/debuganalyzer/gui/thread_window/Jamfile +++ b/src/apps/debuganalyzer/gui/thread_window/Jamfile @@ -5,9 +5,6 @@ UsePrivateSystemHeaders ; UseHeaders $(HAIKU_DEBUG_ANALYZER_HEADERS) ; -CCFLAGS += -Werror ; -C++FLAGS += -Werror ; - MergeObject DebugAnalyzer_gui_thread_window.o : ActivityPage.cpp diff --git a/src/apps/debuganalyzer/model/Jamfile b/src/apps/debuganalyzer/model/Jamfile index 165c2f6..22e4db7 100644 --- a/src/apps/debuganalyzer/model/Jamfile +++ b/src/apps/debuganalyzer/model/Jamfile @@ -5,9 +5,6 @@ UsePrivateSystemHeaders ; UseHeaders $(HAIKU_DEBUG_ANALYZER_HEADERS) ; -CCFLAGS += -Werror ; -C++FLAGS += -Werror ; - MergeObject DebugAnalyzer_model.o : Model.cpp diff --git a/src/apps/debuganalyzer/model_loader/Jamfile b/src/apps/debuganalyzer/model_loader/Jamfile index ed9888b..af86019 100644 --- a/src/apps/debuganalyzer/model_loader/Jamfile +++ b/src/apps/debuganalyzer/model_loader/Jamfile @@ -5,9 +5,6 @@ UsePrivateSystemHeaders ; UseHeaders $(HAIKU_DEBUG_ANALYZER_HEADERS) ; -CCFLAGS += -Werror ; -C++FLAGS += -Werror ; - MergeObject DebugAnalyzer_model_loader.o : AbstractModelLoader.cpp diff --git a/src/apps/debuganalyzer/util/Jamfile b/src/apps/debuganalyzer/util/Jamfile index 8a5316a..fd6ab0c 100644 --- a/src/apps/debuganalyzer/util/Jamfile +++ b/src/apps/debuganalyzer/util/Jamfile @@ -5,9 +5,6 @@ UsePrivateSystemHeaders ; UseHeaders $(HAIKU_DEBUG_ANALYZER_HEADERS) ; -CCFLAGS += -Werror ; -C++FLAGS += -Werror ; - MergeObject DebugAnalyzer_util.o : DataSource.cpp diff --git a/src/apps/debugger/Jamfile b/src/apps/debugger/Jamfile index 56f1ed8..ac9212f 100644 --- a/src/apps/debugger/Jamfile +++ b/src/apps/debugger/Jamfile @@ -1,8 +1,5 @@ SubDir HAIKU_TOP src apps debugger ; -CCFLAGS += -Werror ; -C++FLAGS += -Werror ; - UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; # for syscall_numbers.h diff --git a/src/apps/debugger/arch/x86/disasm/Jamfile b/src/apps/debugger/arch/x86/disasm/Jamfile index 0b40f9f..284eac6 100644 --- a/src/apps/debugger/arch/x86/disasm/Jamfile +++ b/src/apps/debugger/arch/x86/disasm/Jamfile @@ -1,8 +1,5 @@ SubDir HAIKU_TOP src apps debugger arch x86 disasm ; -CCFLAGS += -Werror ; -C++FLAGS += -Werror ; - UsePrivateHeaders shared ; UseHeaders [ LibraryHeaders udis86 ] ; diff --git a/src/apps/debugger/arch/x86_64/disasm/Jamfile b/src/apps/debugger/arch/x86_64/disasm/Jamfile index 7424d3d..9b1289e 100644 --- a/src/apps/debugger/arch/x86_64/disasm/Jamfile +++ b/src/apps/debugger/arch/x86_64/disasm/Jamfile @@ -1,8 +1,5 @@ SubDir HAIKU_TOP src apps debugger arch x86_64 disasm ; -CCFLAGS += -Werror ; -C++FLAGS += -Werror ; - UsePrivateHeaders shared ; UseHeaders [ LibraryHeaders udis86 ] ; diff --git a/src/apps/debugger/demangler/Jamfile b/src/apps/debugger/demangler/Jamfile index 613c6aa..d71c877 100644 --- a/src/apps/debugger/demangler/Jamfile +++ b/src/apps/debugger/demangler/Jamfile @@ -1,8 +1,5 @@ SubDir HAIKU_TOP src apps debugger demangler ; -CCFLAGS += -Werror ; -C++FLAGS += -Werror ; - SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons kernel debugger demangle ] ; diff --git a/src/apps/debugger/dwarf/Jamfile b/src/apps/debugger/dwarf/Jamfile index 0efb29c..4cf6b78 100644 --- a/src/apps/debugger/dwarf/Jamfile +++ b/src/apps/debugger/dwarf/Jamfile @@ -1,8 +1,5 @@ SubDir HAIKU_TOP src apps debugger dwarf ; -CCFLAGS += -Werror ; -C++FLAGS += -Werror ; - UsePrivateHeaders kernel shared ; UsePrivateSystemHeaders ; ############################################################################ Revision: hrev46054 Commit: ef5e0ba9384ca25a5b367806fd0c071dc9337813 URL: http://cgit.haiku-os.org/haiku/commit/?id=ef5e0ba Author: Ithamar R. Adema <ithamar@xxxxxxxxxxxxxxxxxxx> Date: Sun Sep 15 01:59:19 2013 UTC ARM: stub out missing int64 atomic functions Also, add an item to the TODO list for this. Really need to figure it out soon... ---------------------------------------------------------------------------- diff --git a/docs/develop/ports/arm/todo.txt b/docs/develop/ports/arm/todo.txt index e49b6c8..9e73bea 100644 --- a/docs/develop/ports/arm/todo.txt +++ b/docs/develop/ports/arm/todo.txt @@ -1,3 +1,8 @@ +* Determine how to handle atomic functions on ARM. + GCC inlines are not supported, since the instructionset is ill-equiped for + this on older (pre-ARMv7) architectures. We possibly have to do something + similar to the linux kernel helper functions for this.... + * Figure out how to get page flags (modified/accessed) and implement it ;) use unmapped/read-only mappings to trigger soft faults for tracking used/modified flags for ARMv5 and ARMv6 diff --git a/src/system/libroot/os/arch/arm/atomic.S b/src/system/libroot/os/arch/arm/atomic.S index 0127fd0..795e899 100644 --- a/src/system/libroot/os/arch/arm/atomic.S +++ b/src/system/libroot/os/arch/arm/atomic.S @@ -164,83 +164,36 @@ FUNCTION(atomic_get): bx lr FUNCTION_END(atomic_get) +FUNCTION(__sync_fetch_and_add_4): + bx lr +FUNCTION_END(__sync_fetch_and_add_4) /* int64 atomic_add64(vint64 *value, int64 addValue) */ -//FUNCTION(atomic_add64): -// movem.l %d2-%d3/%a2,-(%a7) -// move.l (4,%a7),%a2 -// lea.l (4,%a2),%a1 -// // addValue -// move.l (12,%a7),%d3 /*LSB*/ -// move.l (8,%a7),%d2 /*MSB*/ -//miss5: // old value -// move.l (%a1),%d1 /*LSB*/ -// move.l (%a2),%d0 /*MSB*/ -// add.l %d1,%d3 -// addx.l %d0,%d2 -// cas2.l %d0:%d1,%d2:%d3,(%a2):(%a1) -// bne miss5 -// // return value d0:d1 -// movem.l (%a7)+,%d2-%d3/%a2 -// rts -//FUNCTION_END(atomic_add64) +FUNCTION(atomic_add64): + bx lr +FUNCTION_END(atomic_add64) /* int64 atomic_and64(vint64 *value, int64 andValue) */ -//FUNCTION(atomic_and64): -//FUNCTION_END(atomic_and64) +FUNCTION(atomic_and64): + bx lr +FUNCTION_END(atomic_and64) /* int64 atomic_or64(vint64 *value, int64 orValue) */ -//FUNCTION(atomic_or64): -//FUNCTION_END(atomic_or64) +FUNCTION(atomic_or64): + bx lr +FUNCTION_END(atomic_or64) /* int64 atomic_set64(vint64 *value, int64 newValue) */ -//FUNCTION(atomic_set64): -// movem.l %d2-%d3/%a2,-(%a7) -// move.l (4,%a7),%a2 -// lea.l (4,%a2),%a1 -// // new value -// move.l (12,%a7),%d3 /*LSB*/ -// move.l (8,%a7),%d2 /*MSB*/ -// // old value -// move.l (%a1),%d1 /*LSB*/ -// move.l (%a2),%d0 /*MSB*/ -//miss8: cas2.l %d0:%d1,%d2:%d3,(%a2):(%a1) -// bne miss8 -// // return value d0:d1 -// movem.l (%a7)+,%d2-%d3/%a2 -// rts -//FUNCTION_END(atomic_set64) +FUNCTION(atomic_set64): + bx lr +FUNCTION_END(atomic_set64) /* int64 atomic_test_and_set64(vint64 *value, int64 newValue, int64 testAgainst) */ -//FUNCTION(atomic_test_and_set64): -// movem.l %d2-%d3/%a2,-(%a7) -// move.l (4,%a7),%a2 -// lea.l (4,%a2),%a1 -// // new value -// move.l (12,%a7),%d3 /*LSB*/ -// move.l (8,%a7),%d2 /*MSB*/ -// // test against value -// move.l (20,%a7),%d1 /*LSB*/ -// move.l (16,%a7),%d0 /*MSB*/ -// cas2.l %d0:%d1,%d2:%d3,(%a2):(%a1) -// // return value d0:d1 -// movem.l (%a7)+,%d2-%d3/%a2 -// rts -//FUNCTION_END(atomic_test_and_set64) +FUNCTION(atomic_test_and_set64): + bx lr +FUNCTION_END(atomic_test_and_set64) /* int64 atomic_get64(vint64 *value) */ -//FUNCTION(atomic_get64): -// movem.l %d2-%d3/%a2,-(%a7) -// move.l (4,%a7),%a2 -// lea.l (4,%a2),%a1 -// move.l (%a1),%d1 /*LSB*/ -// move.l (%a2),%d0 /*MSB*/ -// move.l %d1,%d3 -// move.l %d0,%d2 -// // we must use cas... so we change to the same value if matching, -// // else we get the correct one anyway -// cas2.l %d0:%d1,%d2:%d3,(%a2):(%a1) -// // return value -// movem.l (%a7)+,%d2-%d3/%a2 -// rts -//FUNCTION_END(atomic_get64) +FUNCTION(atomic_get64): + bx lr +FUNCTION_END(atomic_get64)