Recent

Author Topic: Patch proposition for socket.pp problem under openbsd (gitlab ticket #38188)  (Read 3413 times)

Fred vS

  • Hero Member
  • *****
  • Posts: 3947
    • StrumPract is the musicians best friend
Yep, but for me the code works & I create a symlink to libc as needed by the program.
Yes, but that's not allowed in my "out-of-the-box" religion.  :-X
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12905
  • FPC developer.
Doesn't OpenBSD have a compat system for older releases?

Fred vS

  • Hero Member
  • *****
  • Posts: 3947
    • StrumPract is the musicians best friend
Doesn't OpenBSD have a compat system for older releases?

No, sadly OpenBSD does not use the fabulous ELF Symbol Versioning like glibc on Linux.
Instead, it uses a more traditional Major.Minor library versioning scheme without any compat system for "security" reason (?).
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12905
  • FPC developer.
Doesn't OpenBSD have a compat system for older releases?

No, sadly OpenBSD does not use the fabulous ELF Symbol Versioning like glibc on Linux.

BSD Compat systems are not the same as ELF symbol versioning. COMPAT assigns different library directories (and I assume dynlinker too) based on OS and version in the ELF ident.  FreeBSD can run linux binaries that way, as well as versions for older major versions.


Fred vS

  • Hero Member
  • *****
  • Posts: 3947
    • StrumPract is the musicians best friend
Doesn't OpenBSD have a compat system for older releases?

No, sadly OpenBSD does not use the fabulous ELF Symbol Versioning like glibc on Linux.

BSD Compat systems are not the same as ELF symbol versioning. COMPAT assigns different library directories (and I assume dynlinker too) based on OS and version in the ELF ident.  FreeBSD can run linux binaries that way, as well as versions for older major versions.

Our best friend Gemini AI says:

Q: Doesn't OpenBSD have a compat system for older releases?

A: No OpenBSD does not have a formal compatibility system or binary compatibility layer for its own older releases. Unlike FreeBSD or NetBSD, which have historically maintained "compat" libraries to run binaries from previous versions, OpenBSD's policy generally prioritizes security and code cleanliness over long-term ABI (Application Binary Interface) stability.

Why OpenBSD Lacks "Compat"Volatile ABI: OpenBSD often changes kernel structures and system calls between releases to improve security or performance. This frequently breaks binary compatibility with older versions.Security Policy: Running old, unpatched, or "insecure" binaries is discouraged by the project's design philosophy.Static vs. Dynamic: While some statically linked binaries might continue to work across a few releases if they don't touch changed kernel interfaces, this is considered "luck" rather than a supported feature.

How to Handle Older Software.
Since there is no built-in compatibility layer, you generally have two options:Recompile from Source: The standard practice is to rebuild your software on the current release. While the ABI changes often, the userland C API is significantly more stable, meaning code often compiles with minimal changes.Stay on Older Releases: If you must run a specific old binary, you usually have to keep the entire OS at that version. Note that OpenBSD only officially supports the current release and the one immediately preceding it.
« Last Edit: April 02, 2026, 02:20:12 pm by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

Fred vS

  • Hero Member
  • *****
  • Posts: 3947
    • StrumPract is the musicians best friend
To summarize, regarding FPC release on OpenBSD, the only "legal" solution is to offer an FPC version per OpenBSD version.

IMHO, of course.  ;)
« Last Edit: April 02, 2026, 02:33:24 pm by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12905
  • FPC developer.
Our best friend Gemini AI says:

Yes, that is about the same as I remember, and one of the reasons I rarely bothered with OpenBSD. Use it with packaged software as is (e.g. as router). Avoid for development.

Fred vS

  • Hero Member
  • *****
  • Posts: 3947
    • StrumPract is the musicians best friend
Avoid for development.

For you, Marco, but not for others.  ;)
« Last Edit: April 02, 2026, 02:48:33 pm by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

marcov

  • Administrator
  • Hero Member
  • *
  • Posts: 12905
  • FPC developer.
Avoid for development.

For you, Marco, but not for others.  ;)

According to Gemini. Free Pascal sources don't automatically adapt to kernel/libc structure/macro/consts changes, so that invalidates the whole premise of OpenBSD's security.

But enlighten me, why do you think it is better for development than either FreeBSD or Linux?

Fred vS

  • Hero Member
  • *****
  • Posts: 3947
    • StrumPract is the musicians best friend
But enlighten me, why do you think it is better for development than either FreeBSD or Linux?

Allez, because you haven't killed me yet when I ask the AI ​​to explain more clearly what I think:

OpenBSD is often preferred for development over FreeBSD or Linux by developers who prioritize security, code correctness, simplicity, and a cohesive, "batteries-included" base system.
While FreeBSD excels in performance and Linux offers broader hardware/software support, OpenBSD's development environment is praised for its consistency, legendary documentation, and innovative security tools like pledge(2) and unveil(2).

Here is why OpenBSD is considered better for development in specific contexts:

1. Superior Security-by-Default DesignProactive Hardening: OpenBSD is designed with an uncompromising focus on security, using technologies like W^X (Write XOR Execute) and ASLR, often making it more secure out of the box than hardened Linux alternatives.pledge(2) and unveil(2): These system calls allow developers to restrict a process's capabilities and filesystem access with minimal code changes. This makes auditing and securing applications much easier than alternative methods in Linux or FreeBSD's Capsicum.Secure Coding Audits: The development team routinely audits the entire source code for security issues and unsafe patterns.

2. Cohesive and "Correct" Base SystemSingle Repository: Unlike Linux, where the kernel, libc, and userland tools are developed separately, OpenBSD develops the entire base system (kernel and userland) together. This results in a tighter integration, making it feel more like a traditional Unix system.High-Quality Built-ins: The base system includes powerful, well-integrated software like pf (packet filter), OpenSSH, relayd, httpd, and smtpd.No Dependency on Systemd: OpenBSD follows the Unix philosophy, avoiding the complexity and bloat of systemd.

3. Better Developer Experience and DocumentationLegendary Man Pages: OpenBSD manual pages are known for being accurate, comprehensive, and updated with every code change. They often provide better technical information than Linux info pages or online forums.Consistency: System administration is predictable. Configuration files are consistently organized, and commands learned years ago rarely change unexpectedly.Simple Upgrades: OpenBSD is recognized for having one of the easiest and most reliable major version upgrade processes, reducing maintenance overhead.

4. Code Quality and AuditabilityConservative Coding: OpenBSD emphasizes code readability, correctness, and simplicity over "flashy" new features.No Bloatware: The project frequently removes dead or redundant code, keeping the system slim and easier to audit.Comparison SummaryOpenBSD vs. Linux: OpenBSD offers a far more consistent and secure environment, avoiding the fragmentation of Linux distributions.OpenBSD vs. FreeBSD: OpenBSD is generally more secure, but FreeBSD has superior hardware support, higher performance, and a larger repository of third-party ports.When to choose OpenBSD for development: If your project involves networking, security appliances, or you need a stable, secure, and predictable development environment.When to avoid: If you need modern graphics acceleration, the latest Wi-Fi drivers, or high-performance ZFS file systems, FreeBSD or Linux may be better suited.

I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

Fred vS

  • Hero Member
  • *****
  • Posts: 3947
    • StrumPract is the musicians best friend
But enlighten me, why do you think it is better for development than either FreeBSD or Linux?

Oops, I forgot one advantage, and not a minor one: Xenocara, their custom X11 graphical server. While most Linux/FreeBSD distributions consider X11 as a third-party "package" to be added to the kernel, OpenBSD integrates Xenocara as a full-fledged part of the base system.

Amen.
« Last Edit: April 02, 2026, 03:56:39 pm by Fred vS »
I use Lazarus 2.2.0 32/64 and FPC 3.2.2 32/64 on Debian 11 64 bit, Windows 10, Windows 7 32/64, Windows XP 32,  FreeBSD 64.
Widgetset: fpGUI, MSEgui, Win32, GTK2, Qt.

https://github.com/fredvs
https://gitlab.com/fredvs
https://codeberg.org/fredvs

 

TinyPortal © 2005-2018