bba: Require explicit endianness flag, and supply it Signed-off-by: Marcus Comstedt <marcus@mc.pp.se>
diff --git a/bba/bba.cmake b/bba/bba.cmake index 3e09427..a6995ca 100644 --- a/bba/bba.cmake +++ b/bba/bba.cmake
@@ -11,3 +11,11 @@ IF(NOT CMAKE_CROSSCOMPILING) EXPORT(TARGETS bbasm FILE ${CMAKE_BINARY_DIR}/ImportExecutables.cmake ) ENDIF(NOT CMAKE_CROSSCOMPILING) + +include(TestBigEndian) +TEST_BIG_ENDIAN(IS_BIG_ENDIAN) +if(IS_BIG_ENDIAN) + set(BBASM_ENDIAN_FLAG "--be") +else() + set(BBASM_ENDIAN_FLAG "--le") +endif()
diff --git a/bba/main.cc b/bba/main.cc index b9cf6d8..d4d16e1 100644 --- a/bba/main.cc +++ b/bba/main.cc
@@ -66,12 +66,6 @@ return p; } -bool testBigEndian() -{ - int n = 1; - return !*(const char *)&n; -} - int main(int argc, char **argv) { bool debug = false; @@ -115,8 +109,10 @@ bigEndian = true; else if (vm.count("le")) bigEndian = false; - else - bigEndian = testBigEndian(); + else { + printf("Endian parameter is mandatory\n"); + exit(-1); + } if (vm.count("c")) writeC = true;
diff --git a/ecp5/family.cmake b/ecp5/family.cmake index ec85756..4fe45a0 100644 --- a/ecp5/family.cmake +++ b/ecp5/family.cmake
@@ -45,7 +45,7 @@ DEPENDS ${DB_PY} ${PREV_DEV_CC_BBA_DB} ) add_custom_command(OUTPUT ${DEV_CC_DB} - COMMAND bbasm ${DEV_CC_BBA_DB} ${DEV_CC_DB} + COMMAND bbasm ${BBASM_ENDIAN_FLAG} ${DEV_CC_BBA_DB} ${DEV_CC_DB} DEPENDS bbasm ${DEV_CC_BBA_DB} ) if (SERIALIZE_CHIPDB) @@ -70,7 +70,7 @@ DEPENDS ${DB_PY} ${PREV_DEV_CC_BBA_DB} ) add_custom_command(OUTPUT ${DEV_CC_DB} - COMMAND bbasm --c ${DEV_CC_BBA_DB} ${DEV_CC_DB}.new + COMMAND bbasm --c ${BBASM_ENDIAN_FLAG} ${DEV_CC_BBA_DB} ${DEV_CC_DB}.new COMMAND mv ${DEV_CC_DB}.new ${DEV_CC_DB} DEPENDS bbasm ${DEV_CC_BBA_DB} )
diff --git a/ice40/family.cmake b/ice40/family.cmake index 6c46f45..3679a72 100644 --- a/ice40/family.cmake +++ b/ice40/family.cmake
@@ -44,7 +44,7 @@ DEPENDS ${DEV_CONSTIDS_INC} ${DEV_GFXH} ${DEV_TXT_DB} ${DB_PY} ${PREV_DEV_CC_BBA_DB} ) add_custom_command(OUTPUT ${DEV_CC_DB} - COMMAND bbasm ${DEV_CC_BBA_DB} ${DEV_CC_DB} + COMMAND bbasm ${BBASM_ENDIAN_FLAG} ${DEV_CC_BBA_DB} ${DEV_CC_DB} DEPENDS bbasm ${DEV_CC_BBA_DB} ) if (SERIALIZE_CHIPDB) @@ -84,7 +84,7 @@ DEPENDS ${DEV_CONSTIDS_INC} ${DEV_GFXH} ${DEV_TXT_DB} ${DB_PY} ${PREV_DEV_CC_BBA_DB} ) add_custom_command(OUTPUT ${DEV_CC_DB} - COMMAND bbasm --c ${DEV_CC_BBA_DB} ${DEV_CC_DB}.new + COMMAND bbasm --c ${BBASM_ENDIAN_FLAG} ${DEV_CC_BBA_DB} ${DEV_CC_DB}.new COMMAND mv ${DEV_CC_DB}.new ${DEV_CC_DB} DEPENDS bbasm ${DEV_CC_BBA_DB} )