NeuronRobotics / nrjavaserial

A Java Serial Port system. This is a fork of the RXTX project that uses in jar loading of the native code.
Other
345 stars 143 forks source link

Add FreeBSD support. Tested with FreeBSD 10.2 and openHAB 1.8.0 #62

Closed marcvk closed 8 years ago

marcvk commented 8 years ago

Hi,

I patched nrjavaserial because I needed it to work with openHAB 1.8.0. It has been tested with FreeBSD 10.2 and works fine. The patches are trivial, no functional differences, just compile flags and changes to IOUtils and device names to support FreeBSD.

(based on original patches by Jan-Willem Spuij, see also https://groups.google.com/forum/?pli=1#!topic/openhab/fLAs5NdLwpw)

MrDOS commented 8 years ago

Thank you for this! Looks good to me.

Out of curiosity, on Linux, we've had some troubles where we accidentally caused compatibility issues by compiling against newer versions of glibc than used by some distros we seek to support. Is there anything similar to watch out for on FreeBSD (i.e., should we in future seek to compile against an older release)?

Also, with a view to maybe one day completing #19, do you have any insight into how cross-compilation for FreeBSD from Linux could work? (I realize I can do my own research on this point, and I will, but I'm curious if you have any existing insight into the problem.)

marcvk commented 8 years ago

Hi,

Great news, it’ll make supporting openHAB on FreeBSD much easier!

Regarding the libc issue, on FreeBSD there is no real separation between the kernel and distributions as in the Linux world. For FreeBSD the kernel and user land libraries and binaries come from the same source tree, so the possible number of permutations is much smaller. Of course if the binaries are old enough, it could eventually cause problems with newer FreeBSD releases. I could however also make this into a “port”. That way it will get built as part of the FreeBSD release process and everyone can chose to rebuild it himself.

Regarding the cross compilation, FreeBSD switched to clang a while ago as the system default compiler. However, gcc is still supported as a package and can be installed separately. I’ve compiled the FreeBSD binaries with clang however. It would maybe take some small tweaking to make it work, but maybe nothing more than changing ‘cc’ to ‘gcc’ in the makefiles.

Cheers, Marc.

On 11 Jan 2016, at 15:21 , Samuel Coleman notifications@github.com wrote:

Thank you for this! Looks good to me.

Out of curiosity, on Linux, we've had some troubles where we accidentally caused compatibility issues by compiling against newer versions of glibc than used by some distros we seek to support. Is there anything similar to watch out for on FreeBSD (i.e., should we in future seek to compile against an older release)?

Also, with a view to maybe one day completing #19 https://github.com/NeuronRobotics/nrjavaserial/issues/19, do you have any insight into how cross-compilation for FreeBSD from Linux could work? (I realize I can do my own research on this point, and I will, but I'm curious if you have any existing insight into the problem.)

— Reply to this email directly or view it on GitHub https://github.com/NeuronRobotics/nrjavaserial/pull/62#issuecomment-170565219.

MrDOS commented 8 years ago

Thanks for the insight. I'll leave this to @madhephaestus to merge once he OKs it and then it will presumably go out with the 3.12.0 release.