Skip to content

Add support for FreeBSD #2959

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
21 tasks
chirontt opened this issue Mar 31, 2025 · 2 comments
Open
21 tasks

Add support for FreeBSD #2959

chirontt opened this issue Mar 31, 2025 · 2 comments
Labels
enhancement New feature or request

Comments

@chirontt
Copy link
Contributor

chirontt commented Mar 31, 2025

Update: since there's no objection, I'm now submitting PRs to various Eclipse repositories for this issue. Here's the central TODO list to keep track of various tasks done and/or under way:


As discussed in #2275

I have been enhancing and building the Eclipse SDKs for FreeBSD in my own fork, and have manually tested them regularly, and successfully, on my own FreeBSD boxes for x86_64 and/or aarch64 architectures. It's time to submit them to the official repos, I guess. Please provide your opinions whether it's worthwhile to officially support FreeBSD builds or not.

I understand that there are no FreeBSD platforms on the official build farm, so it's a bit tricky to officially compile the native binaries for FreeBSD, and thus there won't be any automated tests for the FreeBSD builds (assuming current situation for the near future.) For now, for the native compiling, I have enhanced some existing Docker container to cross-compile the C code from Linux (Alpine Linux, to be exact) to FreeBSD binaries; its README file shows details in cross-compiling the SWT and Equinox launcher binaries to FreeBSD.

If the team supports this FreeBSD build initiative. I will start submitting PRs to various submodule repos, and this issue will become the co-ordination point for the PRs. Of course, any help from the team is quite valuable and is greatly appreciated.

@chirontt chirontt added the enhancement New feature or request label Mar 31, 2025
chirontt added a commit to chirontt/eclipse.platform.swt that referenced this issue Apr 21, 2025
- part of eclipse-platform/eclipse.platform.releng.aggregator#2959
- add 2 SWT binary modules for FreeBSD:
  org.eclipse.swt.gtk.freebsd.aarch64
  org.eclipse.swt.gtk.freebsd.x86_64
- changes made to the build.sh script and make_linux.mak
(renamed to make_unix.mak) to support compiling FreeBSD native
binaries for SWT.

To support cross-compiling from Linux to FreeBSD, for the same hardware
architecture, a Docker container is made available in my fork with detailed
instructions:
https://github.com/chirontt/eclipse.platform.releng.aggregator/tree/master/cje-production/dockerfiles/alpine/freebsd-cross
which will be submitted to the official repo at later stage.
chirontt added a commit to chirontt/equinox that referenced this issue Apr 21, 2025
- part of eclipse-platform/eclipse.platform.releng.aggregator#2959
- add 2 launcher modules for FreeBSD:
  org.eclipse.equinox.launcher.gtk.freebsd.aarch64
  org.eclipse.equinox.launcher.gtk.freebsd.x86_64
- changes made to the build.sh script and make_linux.mak
(renamed to make_unix.mak) to support compiling FreeBSD native
launcher binaries
- changes made to some .c source files to support FreeBSD
- add Equinox security module for FreeBSD: org.eclipse.equinox.security.freebsd
which is just a verbatim copy of the Linux's module.

To support cross-compiling from Linux to FreeBSD, for the same hardware
architecture, a Docker container is made available in my fork with detailed
instructions:
https://github.com/chirontt/eclipse.platform.releng.aggregator/tree/master/cje-production/dockerfiles/alpine/freebsd-cross
which will be submitted to the official repo at later stage.
chirontt added a commit to chirontt/eclipse.jdt.debug that referenced this issue Apr 21, 2025
chirontt added a commit to chirontt/eclipse.jdt.ui that referenced this issue Apr 21, 2025
chirontt added a commit to chirontt/p2 that referenced this issue Apr 22, 2025
Part of eclipse-platform/eclipse.platform.releng.aggregator#2959

Most changes are made to the parser of the .product file (ProductFile.java)
to support relevant elements for FreeBSD such as:

  programArgsFbsd
  vmArgsFbsd
chirontt added a commit to chirontt/eclipse.platform.releng.aggregator that referenced this issue Apr 22, 2025
- part of eclipse-platform#2959
- add environment triplets for FreeBSD aarch64 and/or x86_64.
chirontt added a commit to chirontt/eclipse.platform that referenced this issue Apr 22, 2025
- part of eclipse-platform/eclipse.platform.releng.aggregator#2959
- add 2 file system modules for FreeBSD:
  org.eclipse.core.filesystem.freebsd.aarch64
  org.eclipse.core.filesystem.freebsd.x86_64
- add a Makefile to compile the file system natives for FreeBSD.

To support cross-compiling from Linux to FreeBSD, for the same hardware
architecture, a Docker container is made available in my fork with detailed
instructions:
https://github.com/chirontt/eclipse.platform.releng.aggregator/tree/master/cje-production/dockerfiles/alpine/freebsd-cross
which will be submitted to the official repo at later stage.
chirontt added a commit to chirontt/eclipse.platform.ui that referenced this issue Apr 22, 2025
chirontt added a commit to chirontt/eclipse.pde that referenced this issue Apr 22, 2025
Part of eclipse-platform/eclipse.platform.releng.aggregator#2959

Most changes are made to the parser of the .product file and its GUI editor
to support relevant elements for FreeBSD such as:

  programArgsFbsd
  vmArgsFbsd
  etc.
@akurtakov
Copy link
Member

akurtakov commented Apr 22, 2025

Pardon my lack of knowledge but for Linux we have one binary for all Linux distros, are BSDs that different that there can't be one "bsd" build for all (Free, Open, Net...) ?

@chirontt
Copy link
Contributor Author

I haven't tried the OpenBSD, NetBSD, but I suspect they are all separate OSes, and not separate distributions of an BSD OS, as far as applications are concerned.

Case in point: if you examine the JNA project, they provide separate binary jars for FreeBSD and for OpenBSD. Those jar files contain .so files for their specific OSes, i.e. they can't be used interchangeably.

SougandhS pushed a commit to chirontt/eclipse.jdt.debug that referenced this issue Apr 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants