Skip to content
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

Suport ELF as object format #12

Open
dmik opened this issue Jan 16, 2020 · 3 comments
Open

Suport ELF as object format #12

dmik opened this issue Jan 16, 2020 · 3 comments

Comments

@dmik
Copy link
Contributor

dmik commented Jan 16, 2020

Currently, GCC for OS/2 compiles sources into a.out object files. Which are then converted to OMF with emxomf.exe and linked to an OS/2 LX executable (EXE or DLL) using wlink from OpenWatcom or ilink from IBM VisualAge C (not actually suitable for modern C++ and therefore not supported by us, mainly because it's very dead).

Such a pipeline has many drawbacks. First, it's very slow as includes a separate step of converting A.OUT to OMF. Second, A.OUT is very old and is not suitable for some applications per se. See #11 for one example. Third, there are lots of limitations on the debug information in both A.OUT and OMF (both are very old).

We need to find a way to link ELF objects to LX executables. Then we will be able to configure GCC so that it will generate ELF on OS/2 and we are done. There are rumors that wlink already supports linking ELF to LX. This needs checking.

@dryeo
Copy link

dryeo commented Jan 16, 2020 via email

@dmik
Copy link
Contributor Author

dmik commented Jan 17, 2020

@dryeo thanks for the info. OTOH, converting ELF to OMF kinda beats the whole purpose. We will lose all ELF benefits we need. The only way to go here is link ELF directly to LX (or provide an ELF loader to avoid the LX stage at all — this is where Knut's work could be useful I guess).

Anyway, there is no plans to work on that any time soon. Low priority.

@ydario
Copy link
Contributor

ydario commented Jan 17, 2020

Also Odin WIN32K.SYS driver is able to load directly ELF executables; unfortunately the driver works with older kernels, it misses alignment required to use newer kernels.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants