[haiku-commits] haiku: hrev46054 - src/system/libroot/os/arch/arm src/system/boot/platform/u-boot docs/develop/ports/arm src/apps/debugger src/apps/debuganalyzer/gui

  • From: ithamar@xxxxxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sun, 15 Sep 2013 04:24:15 +0200 (CEST)

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)


Other related posts:

  • » [haiku-commits] haiku: hrev46054 - src/system/libroot/os/arch/arm src/system/boot/platform/u-boot docs/develop/ports/arm src/apps/debugger src/apps/debuganalyzer/gui - ithamar