diff --git a/binaries/org.eclipse.swt.gtk.freebsd.aarch64/.project b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/.project
new file mode 100644
index 00000000000..5a050db0000
--- /dev/null
+++ b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/.project
@@ -0,0 +1,117 @@
+
+
+ org.eclipse.swt.gtk.freebsd.aarch64
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.pde.ManifestBuilder
+
+
+
+
+ org.eclipse.pde.SchemaBuilder
+
+
+
+
+ org.eclipse.pde.api.tools.apiAnalysisBuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.pde.PluginNature
+ org.eclipse.pde.api.tools.apiAnalysisNature
+
+
+
+ .classpath
+ 1
+ PARENT-1-PROJECT_LOC/.classpath_gtk
+
+
+ .settings/.api_filters
+ 1
+ PROJECT_LOC/.settings/.api_filters
+
+
+ .settings
+ 2
+ PARENT-1-PROJECT_LOC/.settings
+
+
+ Eclipse SWT
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT
+
+
+ Eclipse SWT Accessibility
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20Accessibility
+
+
+ Eclipse SWT AWT
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20AWT
+
+
+ Eclipse SWT Browser
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20Browser
+
+
+ Eclipse SWT Custom Widgets
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20Custom%20Widgets
+
+
+ Eclipse SWT Drag and Drop
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20Drag%20and%20Drop
+
+
+ Eclipse SWT OLE Win32
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20OLE%20Win32
+
+
+ Eclipse SWT OpenGL
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20OpenGL
+
+
+ Eclipse SWT PI
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20PI
+
+
+ Eclipse SWT Printing
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20Printing
+
+
+ Eclipse SWT Program
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20Program
+
+
+ Eclipse SWT WebKit
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20WebKit
+
+
+
+
+ SWT_HOST_PLUGIN
+ $%7BPARENT-2-PROJECT_LOC%7D/bundles/org.eclipse.swt
+
+
+
diff --git a/binaries/org.eclipse.swt.gtk.freebsd.aarch64/.settings/.api_filters b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/.settings/.api_filters
new file mode 100644
index 00000000000..90218b8ed40
--- /dev/null
+++ b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/.settings/.api_filters
@@ -0,0 +1,497 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/binaries/org.eclipse.swt.gtk.freebsd.aarch64/META-INF/MANIFEST.MF b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..0ff78925a41
--- /dev/null
+++ b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/META-INF/MANIFEST.MF
@@ -0,0 +1,35 @@
+Manifest-Version: 1.0
+Fragment-Host: org.eclipse.swt;bundle-version="[3.128.0,4.0.0)"
+Bundle-Name: %fragmentName
+Bundle-Vendor: %providerName
+Bundle-SymbolicName: org.eclipse.swt.gtk.freebsd.aarch64; singleton:=true
+Bundle-Version: 3.130.0.qualifier
+Bundle-ManifestVersion: 2
+Bundle-Localization: fragment
+Export-Package:
+ org.eclipse.swt,
+ org.eclipse.swt.accessibility,
+ org.eclipse.swt.awt,
+ org.eclipse.swt.browser,
+ org.eclipse.swt.custom,
+ org.eclipse.swt.dnd,
+ org.eclipse.swt.events,
+ org.eclipse.swt.graphics,
+ org.eclipse.swt.layout,
+ org.eclipse.swt.opengl,
+ org.eclipse.swt.printing,
+ org.eclipse.swt.program,
+ org.eclipse.swt.widgets,
+ org.eclipse.swt.internal; x-friends:="org.eclipse.ui",
+ org.eclipse.swt.internal.image; x-internal:=true,
+ org.eclipse.swt.internal.accessibility.gtk; x-internal:=true,
+ org.eclipse.swt.internal.cairo; x-internal:=true,
+ org.eclipse.swt.internal.gtk; x-internal:=true,
+ org.eclipse.swt.internal.gtk3; x-internal:=true,
+ org.eclipse.swt.internal.gtk4; x-internal:=true,
+ org.eclipse.swt.internal.opengl.glx; x-internal:=true
+Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=freebsd) (osgi.arch=aarch64))
+SWT-WS: gtk
+SWT-OS: freebsd
+SWT-Arch: aarch64
+Automatic-Module-Name: org.eclipse.swt.gtk.freebsd.aarch64
diff --git a/binaries/org.eclipse.swt.gtk.freebsd.aarch64/build.properties b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/build.properties
new file mode 100644
index 00000000000..187d2ab145a
--- /dev/null
+++ b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/build.properties
@@ -0,0 +1,48 @@
+###############################################################################
+# Copyright (c) 2015, 2025 Red Hat Inc. and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Alexander Kurtakov, Red Hat, Inc.- initial API and implementation
+# Hannes Wellmann - Leverage Tycho pomless
+# Tue Ton - support for FreeBSD
+###############################################################################
+custom = true
+bin.includes = .,*.so,fragment.properties
+bin.excludes = library/
+source.. = \
+ ../legal_files/gtk.linux,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT/cairo,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT/emulated/bidi,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT/emulated/coolbar,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT/emulated/taskbar,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT PI/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT PI/cairo,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT PI/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Accessibility/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT AWT/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT AWT/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Printing/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Printing/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Program/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Program/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Browser/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Browser/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT OpenGL/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT OpenGL/glx,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT OpenGL/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk
+output.. = bin/
+
+pom.model.property.os=freebsd
+pom.model.property.ws=gtk
+pom.model.property.arch=aarch64
diff --git a/binaries/org.eclipse.swt.gtk.freebsd.aarch64/fragment.properties b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/fragment.properties
new file mode 100644
index 00000000000..bb3161fd01a
--- /dev/null
+++ b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/fragment.properties
@@ -0,0 +1,13 @@
+###############################################################################
+# Copyright (c) 2015, 2025 Red Hat Inc. and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Alexander Kurtakov, Red Hat, Inc.- initial API and implementation
+# Tue Ton - support for FreeBSD
+###############################################################################
+fragmentName = Standard Widget Toolkit for GTK on aarch64
+providerName = Eclipse.org
diff --git a/binaries/org.eclipse.swt.gtk.freebsd.x86_64/.project b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/.project
new file mode 100644
index 00000000000..4dabd3d2f2a
--- /dev/null
+++ b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/.project
@@ -0,0 +1,117 @@
+
+
+ org.eclipse.swt.gtk.freebsd.x86_64
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.pde.ManifestBuilder
+
+
+
+
+ org.eclipse.pde.SchemaBuilder
+
+
+
+
+ org.eclipse.pde.api.tools.apiAnalysisBuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.pde.PluginNature
+ org.eclipse.pde.api.tools.apiAnalysisNature
+
+
+
+ .classpath
+ 1
+ PARENT-1-PROJECT_LOC/.classpath_gtk
+
+
+ .settings/.api_filters
+ 1
+ PROJECT_LOC/.settings/.api_filters
+
+
+ .settings
+ 2
+ PARENT-1-PROJECT_LOC/.settings
+
+
+ Eclipse SWT
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT
+
+
+ Eclipse SWT Accessibility
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20Accessibility
+
+
+ Eclipse SWT AWT
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20AWT
+
+
+ Eclipse SWT Browser
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20Browser
+
+
+ Eclipse SWT Custom Widgets
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20Custom%20Widgets
+
+
+ Eclipse SWT Drag and Drop
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20Drag%20and%20Drop
+
+
+ Eclipse SWT OLE Win32
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20OLE%20Win32
+
+
+ Eclipse SWT OpenGL
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20OpenGL
+
+
+ Eclipse SWT PI
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20PI
+
+
+ Eclipse SWT Printing
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20Printing
+
+
+ Eclipse SWT Program
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20Program
+
+
+ Eclipse SWT WebKit
+ 2
+ SWT_HOST_PLUGIN/Eclipse%20SWT%20WebKit
+
+
+
+
+ SWT_HOST_PLUGIN
+ $%7BPARENT-2-PROJECT_LOC%7D/bundles/org.eclipse.swt
+
+
+
diff --git a/binaries/org.eclipse.swt.gtk.freebsd.x86_64/.settings/.api_filters b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/.settings/.api_filters
new file mode 100644
index 00000000000..21ea75e8a21
--- /dev/null
+++ b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/.settings/.api_filters
@@ -0,0 +1,497 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/binaries/org.eclipse.swt.gtk.freebsd.x86_64/META-INF/MANIFEST.MF b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..e50cbb8a784
--- /dev/null
+++ b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/META-INF/MANIFEST.MF
@@ -0,0 +1,35 @@
+Manifest-Version: 1.0
+Fragment-Host: org.eclipse.swt;bundle-version="[3.128.0,4.0.0)"
+Bundle-Name: %fragmentName
+Bundle-Vendor: %providerName
+Bundle-SymbolicName: org.eclipse.swt.gtk.freebsd.x86_64; singleton:=true
+Bundle-Version: 3.130.0.qualifier
+Bundle-ManifestVersion: 2
+Bundle-Localization: fragment
+Export-Package:
+ org.eclipse.swt,
+ org.eclipse.swt.accessibility,
+ org.eclipse.swt.awt,
+ org.eclipse.swt.browser,
+ org.eclipse.swt.custom,
+ org.eclipse.swt.dnd,
+ org.eclipse.swt.events,
+ org.eclipse.swt.graphics,
+ org.eclipse.swt.layout,
+ org.eclipse.swt.opengl,
+ org.eclipse.swt.printing,
+ org.eclipse.swt.program,
+ org.eclipse.swt.widgets,
+ org.eclipse.swt.internal; x-friends:="org.eclipse.ui",
+ org.eclipse.swt.internal.image; x-internal:=true,
+ org.eclipse.swt.internal.accessibility.gtk; x-internal:=true,
+ org.eclipse.swt.internal.cairo; x-internal:=true,
+ org.eclipse.swt.internal.gtk; x-internal:=true,
+ org.eclipse.swt.internal.gtk3; x-internal:=true,
+ org.eclipse.swt.internal.gtk4; x-internal:=true,
+ org.eclipse.swt.internal.opengl.glx; x-internal:=true
+Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=freebsd) (osgi.arch=x86_64))
+SWT-WS: gtk
+SWT-OS: freebsd
+SWT-Arch: x86_64
+Automatic-Module-Name: org.eclipse.swt.gtk.freebsd.x86_64
diff --git a/binaries/org.eclipse.swt.gtk.freebsd.x86_64/build.properties b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/build.properties
new file mode 100644
index 00000000000..715b9f927ba
--- /dev/null
+++ b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/build.properties
@@ -0,0 +1,49 @@
+###############################################################################
+# Copyright (c) 2000, 2025 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+# Krzysztof Daniel, Red Hat, Inc. - tycho enablement
+# Hannes Wellmann - Leverage Tycho pomless
+# Tue Ton - support for FreeBSD
+###############################################################################
+custom = true
+bin.includes = .,*.so,fragment.properties
+bin.excludes = library/
+source.. = \
+ ../legal_files/gtk.linux,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT/cairo,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT/emulated/bidi,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT/emulated/coolbar,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT/emulated/taskbar,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT PI/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT PI/cairo,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT PI/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Accessibility/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT AWT/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT AWT/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Printing/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Printing/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Program/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Program/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Browser/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT Browser/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT OpenGL/gtk,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT OpenGL/glx,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT OpenGL/common,\
+ ../../bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk
+output.. = bin/
+
+pom.model.property.os=freebsd
+pom.model.property.ws=gtk
+pom.model.property.arch=x86_64
diff --git a/binaries/org.eclipse.swt.gtk.freebsd.x86_64/fragment.properties b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/fragment.properties
new file mode 100644
index 00000000000..f0d12f7938d
--- /dev/null
+++ b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/fragment.properties
@@ -0,0 +1,13 @@
+###############################################################################
+# Copyright (c) 2000, 2025 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# IBM Corporation - initial API and implementation
+# Tue Ton - support for FreeBSD
+###############################################################################
+fragmentName = Standard Widget Toolkit for GTK on x86_64
+providerName = Eclipse.org
diff --git a/binaries/pom.xml b/binaries/pom.xml
index 743ed32629c..b4f25cf22f8 100644
--- a/binaries/pom.xml
+++ b/binaries/pom.xml
@@ -1,7 +1,7 @@
org.eclipse.swt.cocoa.macosx.x86_64
org.eclipse.swt.cocoa.macosx.aarch64
+ org.eclipse.swt.gtk.freebsd.aarch64
+ org.eclipse.swt.gtk.freebsd.x86_64
org.eclipse.swt.gtk.linux.aarch64
org.eclipse.swt.gtk.linux.ppc64le
org.eclipse.swt.gtk.linux.riscv64
diff --git a/bundles/org.eclipse.swt.tools/Oomph/platformSwt.setup b/bundles/org.eclipse.swt.tools/Oomph/platformSwt.setup
index dca1b94d700..93d46f1a808 100644
--- a/bundles/org.eclipse.swt.tools/Oomph/platformSwt.setup
+++ b/bundles/org.eclipse.swt.tools/Oomph/platformSwt.setup
@@ -74,7 +74,7 @@
xsi:type="predicates:OrPredicate">
+ pattern=".*(cocoa|gtk|win32)(\.(freebsd|macosx|aix|hpux|linux|solaris|win32)(\.(x86_64|ia64|aarch64|arm|ppc64|ppc64le|s390|s390x|x86|sparcv9))?)?"/>
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/Library.java b/bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/Library.java
index 5f4472c73c8..464bb8f6989 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/Library.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/Library.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2022 IBM Corporation and others.
+ * Copyright (c) 2000, 2025 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -10,6 +10,7 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ * Tue Ton - support for FreeBSD
*******************************************************************************/
package org.eclipse.swt.internal;
@@ -69,12 +70,14 @@ public class Library {
static String arch() {
String osArch = System.getProperty("os.arch"); //$NON-NLS-1$
if (osArch.equals ("amd64")) return "x86_64"; //$NON-NLS-1$ $NON-NLS-2$
+ if (osArch.equals ("arm64")) return "aarch64"; //$NON-NLS-1$ $NON-NLS-2$
return osArch;
}
static String os() {
String osName = System.getProperty("os.name"); //$NON-NLS-1$
if (osName.equals ("Linux")) return "linux"; //$NON-NLS-1$ $NON-NLS-2$
+ if (osName.equals ("FreeBSD")) return "freebsd"; //$NON-NLS-1$ $NON-NLS-2$
if (osName.equals ("Mac OS X")) return "macosx"; //$NON-NLS-1$ $NON-NLS-2$
if (osName.startsWith ("Win")) return "win32"; //$NON-NLS-1$ $NON-NLS-2$
return osName;
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh
index fa85c882a6f..0a3d4f5b3ae 100755
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh
@@ -1,6 +1,6 @@
#!/bin/sh
#*******************************************************************************
-# Copyright (c) 2000, 2020 IBM Corporation and others.
+# Copyright (c) 2000, 2025 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
@@ -13,6 +13,7 @@
# IBM Corporation - initial API and implementation
# Kevin Cornell (Rational Software Corporation)
# Tom Tromey (Red Hat, Inc.)
+# Tue Ton - support for FreeBSD
#*******************************************************************************
HELP="
@@ -81,9 +82,15 @@ if [ "${OS}" = "" ]; then
OS=`uname -s`
fi
case $OS in
+ "FreeBSD" | "freebsd")
+ SWT_OS=`echo $OS | tr '[:upper:]' '[:lower:]'`
+ MAKE_TYPE=gmake
+ MAKEFILE=make_unix.mak
+ export FREEBSD_OS=1
+ ;;
*)
SWT_OS=`uname -s | tr -s '[:upper:]' '[:lower:]'`
- MAKEFILE=make_linux.mak
+ MAKEFILE=make_unix.mak
;;
esac
@@ -91,7 +98,7 @@ esac
if [ "${MODEL}" = "" ]; then
if uname -i > /dev/null 2>&1; then
MODEL=`uname -i`
- if [ ${MODEL} = 'unknown' ]; then
+ if [ ${MODEL} = 'unknown' -o ${MODEL} = 'GENERIC' ]; then
MODEL=`uname -m`
fi
else
@@ -100,10 +107,24 @@ if [ "${MODEL}" = "" ]; then
export MODEL
fi
case $MODEL in
- "x86_64")
+ "x86_64" | "amd64")
SWT_ARCH=x86_64
AWT_ARCH=amd64
;;
+ "aarch64" | "arm64")
+ SWT_ARCH=aarch64
+ AWT_ARCH=aarch64
+ ;;
+ "powerpc" | "powerpc64")
+ SWT_ARCH=ppc64
+ AWT_ARCH=ppc64
+ MODEL=`uname -p`
+ ;;
+ "powerpc64le")
+ SWT_ARCH=ppc64le
+ AWT_ARCH=ppc64le
+ MODEL=`uname -p`
+ ;;
*)
SWT_ARCH=$MODEL
AWT_ARCH=$MODEL
@@ -142,11 +163,30 @@ case $SWT_OS.$SWT_ARCH in
if [ "${PKG_CONFIG_PATH}" = "" ]; then
export PKG_CONFIG_PATH="/usr/lib64/pkgconfig/"
fi
+ ;;
+ "freebsd.x86_64")
+ AWT_ARCH=x86_64
+ if [ "${CC}" = "" ]; then
+ export CC=cc
+ fi
+ ;;
+ "freebsd.ppc64" | "freebsd.ppc64le")
+ if [ "${CC}" = "" ]; then
+ export CC=cc
+ fi
+ export GTK_VERSION=3.0
+ ;;
+ "freebsd.aarch64")
+ if [ "${CC}" = "" ]; then
+ export CC=cc
+ fi
+ export GTK_VERSION=3.0
+ ;;
esac
# For 64-bit CPUs, we have a switch
-if [ ${MODEL} = 'x86_64' -o ${MODEL} = 'ppc64le' -o ${MODEL} = 'aarch64' -o ${MODEL} = 'loongarch64' -o ${MODEL} = 'riscv64' ]; then
+if [ ${MODEL} = 'x86_64' -o ${MODEL} = 'ppc64' -o ${MODEL} = 'ppc64le' -o ${MODEL} = 'powerpc64' -o ${MODEL} = 'powerpc64le' -o ${MODEL} = 'aarch64' -o ${MODEL} = 'arm64' -o ${MODEL} = 'loongarch64' -o ${MODEL} = 'riscv64' ]; then
SWT_PTR_CFLAGS=-DJNI64
if [ -d /lib64 ]; then
XLIB64=-L/usr/X11R6/lib64
@@ -158,6 +198,11 @@ if [ ${MODEL} = 'x86_64' -o ${MODEL} = 'ppc64le' -o ${MODEL} = 'aarch64' -o ${MO
SWT_LFLAGS=-m64
export SWT_LFLAGS
fi
+ if [ ${SWT_OS} = "freebsd" ]
+ then
+ SWT_PTR_CFLAGS="${SWT_PTR_CFLAGS} -m64"
+ export SWT_LFLAGS=-m64
+ fi
export SWT_PTR_CFLAGS
fi
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_unix.mak
similarity index 94%
rename from bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak
rename to bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_unix.mak
index 0d5cbe9875b..624745bd8e8 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_unix.mak
@@ -1,5 +1,5 @@
#*******************************************************************************
-# Copyright (c) 2000, 2016 IBM Corporation and others.
+# Copyright (c) 2000, 2025 IBM Corporation and others.
#
# This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
@@ -10,9 +10,10 @@
#
# Contributors:
# IBM Corporation - initial API and implementation
+# Tue Ton - support for FreeBSD
#*******************************************************************************
-# Makefile for creating SWT libraries for Linux GTK
+# Makefile for creating SWT libraries for Linux & FreeBSD GTK
# assumes these variables are set in the environment from which make is run
# SWT_JAVA_HOME
@@ -102,13 +103,31 @@ GLX_OBJECTS = swt.o glx.o glx_structs.o glx_stats.o
CFLAGS := $(CFLAGS) \
$(SWT_DEBUG) \
$(SWT_WEBKIT_DEBUG) \
- -DLINUX -DGTK \
+ -DGTK \
-I$(SWT_JAVA_HOME)/include \
- -I$(SWT_JAVA_HOME)/include/linux \
-std=gnu17 \
${SWT_PTR_CFLAGS}
LFLAGS = -shared -fPIC ${SWT_LFLAGS}
+ifdef FREEBSD_OS
+ifeq ($(GTK_VERSION), 4.0)
+freebsd_gtk_prefix = `pkg-config --variable=prefix gtk4`
+else
+freebsd_gtk_prefix = `pkg-config --variable=prefix gtk+-3.0`
+endif
+CFLAGS := $(CFLAGS) \
+ -DFREEBSD \
+ -Wno-deprecated-non-prototype \
+ -Wno-deprecated-declarations \
+ -I$(freebsd_gtk_prefix)/include \
+ -I$(SWT_JAVA_HOME)/include/freebsd
+LFLAGS := $(LFLAGS) -L$(freebsd_gtk_prefix)/lib
+else
+CFLAGS := $(CFLAGS) \
+ -DLINUX \
+ -I$(SWT_JAVA_HOME)/include/linux
+endif
+
# Treat all warnings as errors. If your new code produces a warning, please
# take time to properly understand and fix/silence it as necessary.
ifeq ($(GTK_VERSION), 3.0)
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
index 97cc31ee5d8..42e30a522dc 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2024 IBM Corporation and others. All rights reserved.
+ * Copyright (c) 2000, 2025 IBM Corporation and others. All rights reserved.
* The contents of this file are made available under the terms
* of the GNU Lesser General Public License (LGPL) Version 2.1 that
* accompanies this distribution (lgpl-v21.txt). The LGPL is also
@@ -11,6 +11,7 @@
*
* Contributors:
* IBM Corporation - initial API and implementation
+ * Tue Ton - suport for FreeBSD
*******************************************************************************/
package org.eclipse.swt.internal.gtk;
@@ -60,15 +61,16 @@
*/
public class OS extends C {
/** OS Constants */
- public static final boolean IsLinux, IsWin32, BIG_ENDIAN;
+ public static final boolean IsFreeBSD, IsLinux, IsWin32, BIG_ENDIAN;
static {
/* Initialize the OS flags and locale constants */
String osName = System.getProperty ("os.name");
- boolean isLinux = false, isWin32 = false;
+ boolean isFreeBSD = false, isLinux = false, isWin32 = false;
+ if (osName.equals ("FreeBSD")) isFreeBSD = true;
if (osName.equals ("Linux")) isLinux = true;
if (osName.startsWith("Windows")) isWin32 = true;
- IsLinux = isLinux; IsWin32 = isWin32;
+ IsFreeBSD = isFreeBSD; IsLinux = isLinux; IsWin32 = isWin32;
byte[] buffer = new byte[4];
long ptr = C.malloc(4);
diff --git a/bundles/org.eclipse.swt/META-INF/p2.inf b/bundles/org.eclipse.swt/META-INF/p2.inf
index d241b4233fa..7ee7fb9a83e 100644
--- a/bundles/org.eclipse.swt/META-INF/p2.inf
+++ b/bundles/org.eclipse.swt/META-INF/p2.inf
@@ -44,3 +44,13 @@ requires.9.namespace = org.eclipse.equinox.p2.iu
requires.9.name = org.eclipse.swt.gtk.linux.riscv64
requires.9.range = [$version$,$version$]
requires.9.filter = (&(osgi.os=linux)(osgi.ws=gtk)(osgi.arch=riscv64)(!(org.eclipse.swt.buildtime=true)))
+
+requires.10.namespace = org.eclipse.equinox.p2.iu
+requires.10.name = org.eclipse.swt.gtk.freebsd.x86_64
+requires.10.range = [$version$,$version$]
+requires.10.filter = (&(osgi.os=freebsd)(osgi.ws=gtk)(osgi.arch=x86_64)(!(org.eclipse.swt.buildtime=true)))
+
+requires.11.namespace = org.eclipse.equinox.p2.iu
+requires.11.name = org.eclipse.swt.gtk.freebsd.aarch64
+requires.11.range = [$version$,$version$]
+requires.11.filter = (&(osgi.os=freebsd)(osgi.ws=gtk)(osgi.arch=aarch64)(!(org.eclipse.swt.buildtime=true)))
diff --git a/local-build/org.eclipse.swt.fragments.localbuild/META-INF/p2.inf b/local-build/org.eclipse.swt.fragments.localbuild/META-INF/p2.inf
index 63c7cd8bc00..dec1e3d10df 100644
--- a/local-build/org.eclipse.swt.fragments.localbuild/META-INF/p2.inf
+++ b/local-build/org.eclipse.swt.fragments.localbuild/META-INF/p2.inf
@@ -38,3 +38,13 @@ requires.8.namespace = org.eclipse.equinox.p2.iu
requires.8.name = org.eclipse.swt.gtk.linux.riscv64
requires.8.range = 0.0.0
requires.8.filter = (&(osgi.os=linux)(osgi.ws=gtk)(osgi.arch=riscv64))
+
+requires.9.namespace = org.eclipse.equinox.p2.iu
+requires.9.name = org.eclipse.swt.gtk.freebsd.x86_64
+requires.9.range = 0.0.0
+requires.9.filter = (&(osgi.os=freebsd)(osgi.ws=gtk)(osgi.arch=x86_64))
+
+requires.10.namespace = org.eclipse.equinox.p2.iu
+requires.10.name = org.eclipse.swt.gtk.freebsd.aarch64
+requires.10.range = 0.0.0
+requires.10.filter = (&(osgi.os=freebsd)(osgi.ws=gtk)(osgi.arch=aarch64))
diff --git a/pom.xml b/pom.xml
index 3724bbbdb02..5b13a57633b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,6 +1,6 @@
unix
- Linux
@@ -140,6 +140,11 @@
gtk
ppc64le
+
+ freebsd
+ gtk
+ x86_64
+