From 9b4acc149d33f2c0096cd74c8c6cf81b09b52252 Mon Sep 17 00:00:00 2001 From: Modestas Vainius Date: Sun, 16 May 2010 16:15:55 +0300 Subject: [PATCH] Further improve FinJNI.cmake. This should fix some inconsistencies on s390. --- debian/changelog | 1 + .../FindJNI_fix_libarch_determination.diff | 40 +++++++++++-------- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/debian/changelog b/debian/changelog index 539248d54..cd50bb477 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,6 @@ cmake (2.8.1-4) UNRELEASED; urgency=low + * Further improve FinJNI.cmake. This should fix some inconsistencies on s390. -- Modestas Vainius Sun, 16 May 2010 16:14:33 +0300 diff --git a/debian/patches/FindJNI_fix_libarch_determination.diff b/debian/patches/FindJNI_fix_libarch_determination.diff index 066d854d4..2712fe492 100644 --- a/debian/patches/FindJNI_fix_libarch_determination.diff +++ b/debian/patches/FindJNI_fix_libarch_determination.diff @@ -10,11 +10,12 @@ Subject: Fix libarch determination based on openjdk 1.6.0_18 + icedtea code Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=544674 Bug: http://public.kitware.com/Bug/view.php?id=9611 Origin: vendor -Forwarded: no +Forwarded: yes +Last-Update: 2010-05-17 --- a/Modules/FindJNI.cmake +++ b/Modules/FindJNI.cmake -@@ -29,24 +29,42 @@ +@@ -29,24 +29,49 @@ # Expand {libarch} occurences to java_libarch subdirectory(-ies) and set ${_var} MACRO(java_append_library_directories _var) # Determine java arch-specific library subdir @@ -46,32 +47,39 @@ Forwarded: no + ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^alpha") + SET(_java_libarch "alpha") + ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm") ++ # Subdir is "arm" for both big-endian (arm) and little-endian (armel). + SET(_java_libarch "arm") + ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^mips") -+ IF(CMAKE_CROSSCOMPILING) -+ SET(_java_libarch "mips" "mipsel" "mipseb") -+ ELSE(CMAKE_CROSSCOMPILING) -+ INCLUDE(TestBigEndian) -+ TEST_BIG_ENDIAN(_java_bigendian) -+ IF(_java_bigendian) -+ SET(_java_libarch "mips" "mipseb") -+ ELSE(_java_bigendian) -+ SET(_java_libarch "mipsel") -+ ENDIF(_java_bigendian) -+ ENDIF(CMAKE_CROSSCOMPILING) ++ # mips* machines are bi-endian mostly so processor does not tell ++ # endianess of the underlying system. ++ SET(_java_libarch "${CMAKE_SYSTEM_PROCESSOR}" "mips" "mipsel" "mipseb") + ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64") + SET(_java_libarch "ppc64") + ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)") + SET(_java_libarch "ppc") + ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^sparc") -+ SET(_java_libarch "sparc" "sparcv9") ++ # Both flavours can run on the same processor ++ SET(_java_libarch "${CMAKE_SYSTEM_PROCESSOR}" "sparc" "sparcv9") + ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^(parisc|hppa)") + SET(_java_libarch "parisc" "parisc64") ++ ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^s390") ++ # s390 binaries can run on s390x machines ++ SET(_java_libarch "${CMAKE_SYSTEM_PROCESSOR}" "s390" "s390x") + ELSEIF(CMAKE_SYSTEM_PROCESSOR MATCHES "^sh") + SET(_java_libarch "sh") -+ ELSE(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") -+ SET(_java_libarch ${CMAKE_SYSTEM_PROCESSOR}) ++ ELSEIF("${CMAKE_SYSTEM_PROCESSOR}") ++ SET(_java_libarch "${CMAKE_SYSTEM_PROCESSOR}") + ENDIF(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") ++ ++ # Append default list architectures if CMAKE_SYSTEM_PROCESSOR was empty or ++ # system is non-Linux (where the code above has not been well tested) ++ IF(NOT _java_libarch OR NOT (CMAKE_SYSTEM_NAME MATCHES "Linux")) ++ LIST(APPEND _java_libarch "i386" "amd64" "ppc") ++ ENDIF(NOT _java_libarch OR NOT (CMAKE_SYSTEM_NAME MATCHES "Linux")) ++ ++ # Sometimes ${CMAKE_SYSTEM_PROCESSOR} is added to the list to prefer ++ # current value to a hardcoded list. Remove possible duplicates. ++ LIST(REMOVE_DUPLICATES _java_libarch) FOREACH(_path ${ARGN}) IF(_path MATCHES "{libarch}")