Which JDK 8 binary should I install on Raspbian? - java-8

I'm trying to upgrade JDK 8 that came with Raspbian Jessie to the latest version, but there are multiple binaries avaiable on Oracle web site:
Java SE Development Kit Linux ARM v6/v7 Hard Float ABI
(jdk-8u73-linux-arm32-vfp-hflt.tar.gz)
Java SE Development Kit Linux ARM v6/v7 Hard Float ABI
(jdk-8u73-linux-arm64-vfp-hflt.tar.gz)
Java SE Embedded Version 8 Update 73 - ARMv5/ARMv6/ARMv7 Linux -
SoftFP ABI, Little Endian 2 (ejdk-8u73-linux-arm-sflt.tar.gz)
Java SE Embedded Version 8 Update 73 - ARM v6/v7 Linux - VFP, HardFP
ABI, Little Endian 1 (ejdk-8u73-linux-armv6-vfp-hflt.tar.gz)
Which one is the right one?

I got some answers here:
https://www.raspberrypi.org/forums/viewtopic.php?f=81&t=135941
Option 1 or 4 is correct for use on a Rasbian system
1. Java SE Development Kit Linux ARM v6/v7 Hard Float ABI (jdk-8u73-linux-arm32-vfp-hflt.tar.gz)
4. Java SE Embedded Version 8 Update 73 - ARM v6/v7 Linux - VFP, HardFP ABI, Little Endian 1 (ejdk-8u73-linux-armv6-vfp-hflt.tar.gz)
Option 2 requires a 64 bit CPU Option 3 requires a "soft-float" linux
system where all applications are compiled not to use a floating
point VFP unit., it uses a different ABI compared to Raspbian.

Go for option 1. Java SE Development Kit Linux ARM v6/v7 Hard Float ABI (jdk-8u73-linux-arm32-vfp-hflt.tar.gz)
stay away from software floating point version, they are very poor performance and you have a hardware floating point calculator in PI so better use it.
Raspbian is a 32 bit operating system , it wont support 64 bit word length JDK or JRE. unless you are on a motorola PC , your architecture is Little Endian

Related

Is 32-bit ARM (windows) considered dead/deprecated?

I was curious about the ARM32 architecture (the 32-bit only version) and it's future: according to the wiki page, the Windows 8 variant Windows RT was ARM32, but it is deprecated now.
Windows 11 seems it will be ARM64-only.
What about devices released in-between?
I could not find any information/statistics related to this.
As far as I know ARM64 can run ARM (32-bit) applications, but one developing a system driver or working low-level has to support both platforms.
For comparison as far as I know, majority of current android phones are 64-bit already and with the 32-bit architecture having the 4GB limitation, logic would dictate, that outside of niche scenarios we should not really see 32bit-only ARM systems.
Anyone has any information regarding this?
There is absolutely no reason for MS to release ARM32 version:
No chip vendor is launching high end ARM32 chips
aarch64 is vastly superior to aarch32 while not much more expensive for licensees (if at all)
aarch64 is NOT backward compatible.
Why would MS want to fragment their Windows eco system more than necessary?

Performance of 32 bit application on 64 bit platform

We have a 32 bit application. It is currently running on a 32 VM. If we run the application on a 64 bit OS(Virtual Machine) which supports Intel Virtualization Technology will it run faster? We do not have a 32 bit OS(Virtual Machine) which supports Intel Virtualization Technology.
There is not not enough material that I could find. Please share your knowledge.
The answer is no.
We were running on an instance which had no Hardware virtualization support. Now we tested on a new virtualized system with Intel Virtualization Technology. The Application here is a 32 bit system and the new system was 64 bit OS - Ubuntu. This was run using gcc-multilib support for Ubuntu. There was not a huge performance improvement observed.

Is it possible for make application only compatible with 64-bit, not with 32-bit architecture

I'm working on windows applications. I've created a application for windows(64-bit). But when I have installed that application on my system. In services, it is showing something.exe * 32. But I want to make that application only compatible with 64-bit windows, not with 32-bit.
Q1. Is it possible for make application only compatible with 64-bit, not with 32-bit architecture?
Q2. if it is possible, then please tell me the factors which make it 64-bit compatible only, not 32-bit.
Q3. What changes i need to make for compatibility with 64-bit Windows only.
Yes it is possible. Compile it using 64-bit op codes and 64 bit registers and it will not run on a 32 bit Windows system. For example, using GCC, you can add the -arch x86_64 option to force 64 bit compilation.
You, however, have not stated which language you're using. If you're using Java or some other byte-code style language then there's nothing that you can do.

64 bit versus 32 bit for Windows phone development

I just spent all day loading up my new windows 8 laptop with all my dev tools. Only to find out that my OS version was the 32 bit version.
When I tried to run the emulator for my windows phone 8 app I got an error saying I needed "Hyper-V". Apparently "Hyper-V" is only available on the 64 bit version.
I have a two part question. How do I develop using my current 32 bit OS and dev tools? From what I'm reading I can still test with a registered phone. Any information on how to do this?
The other question is, do I bite the bullet now and upgrade to the 64 bit OS (which is a reformat and re-installation of everything)?
Thanks
I would bite the bullet and upgrade to 64 bit now. The full system requirements for Windows Phone 8 development are here. Besides needing 64-bit Windows 8 Pro or higher to use the Windows Phone 8 emulator, the other "gotcha" is needing a processor that supports Second Level Address Translation (SLAT).
PCs that support SLAT are Intel-based processors that start with i (e.g., i3, i5, i7, i9) or any CPUs based on the Nehalem, Westmere, or Sandybridge micro-architectures. 
To determine if your machine supports SLAT, perform the following steps:
Download SysInternals/TechNet CoreInfo at http://technet.microsoft.com/en-us/sysinternals/cc835722
Run "coreinfo -v"
If you have "*" next to "EPT", you should be good. If you have a "-" next to EPT, your processor doesn't support SLAT.
If you hace a Windows Phone 8 device you can "unlock" it and deploy and debug apps in it, so you can keep your 32 bits OS.
Otherwise, you need to format and install a 64 bits version of Windows 8.

Developing a 64 bit kernel module on a 32 bit distro

My development machine has a 64 bit proc, running a 32 bit distribution.
I would like to compile and test a kernel module with a 64 bit kernel. My question is :
Is there a 64 bit liveCD with kernel development package included ?
If it does not exist, How can I build a module for a 64 bit kernel ? Then I can eventually test it with a liveCD
You can install a 64-bit VM on a 32-bit operating system, provided the CPU supports it. I know this is possible with VMWare, don't know about anything else.
If you're doing any system development nowadays, I'd say use a VM, regardless of the target platform. Just use a VM.
It might be more technical than you would want to try, but, if you can get a 64bit toolchain installed, you should be able to compile the kernel through:
make ARCH=amd64 CROSS_COMPILE=x86_64-pc-linux-gnu- menuconfig
You should be able to boot your regular 32bit userland with a 64bit kernel (if you select the appropriate binary compatibility options)
Cheers!
http://www.ubuntu.com/desktop/get-ubuntu/download has links for 64-bit download, and the "make USB on windows" option includes screenshots showing how to make a bootable 64-bit ubuntu USB memory stick. (None of the other options in the {CD, USB} x {Windows, Mac, Ubuntu} instructions mention anything about only working for x86 vs x86-64.)

Resources