You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
./configur.sh doesn't seem to generate the *.err files as noted in the the header of configur
Is this only something that can be built on windows?
edit:
it just occurred to me that the main reason why I'm even going down this path is because the latest binary version of watt32 available on the website is 2.2 from 2018
I'm trying to compile OpenSSL (3.x) for use with djgpp and it seems to be missing a definition for SHUT_RD which
does not appear to be defined in the binary version on the website
appears to be defined in sys/socket.h on master in this repository.
I should be able to compile OpenSSL correctly if given a new binary version.
n.b.:
the artifacts that were available on appveyor are not available currently as they are over one month old
I've no idea (I've not used Linux in many years). The src/configur.sh script was made by Ozkan Sezer.
it just occurred to me that the main reason why I'm even going down this path is because the latest binary version of watt32 > available on the website is 2.2 from 2018
All the error names specified by POSIX.1 must have distinct
values, with the exception of EAGAIN and EWOULDBLOCK, which may
be the same. On Linux, these two have the same value on all
architectures.
EWOULDBLOCK should have the same ID as EAGAIN but it seems to have been pushed to 41?
Which is interesting since EWOULDBLOCK should be considered a "vendor" errno
All the error names specified by POSIX.1 must have distinct
values, with the exception of EAGAIN and EWOULDBLOCK, which may
be the same. On Linux, these two have the same value on all
architectures.
EWOULDBLOCK should have the same ID as EAGAIN but it seems to have been pushed to 41? Which is interesting since EWOULDBLOCK should be considered a "vendor" errno
I don't think it's intentional, and it seems this is what causes it:
#elif defined(WATT32_DJGPP_MINGW) /* Same as for HighC */
last_errno=sys_nerr-1;
That macro is defined for win32/dj_err.exe - which is built via mingw32. But
you say you ran it in DOSBox-X... I'm curious how you managed that :)
Anyway, I'm wondering now why dj_err.exe is even included in this repo at
all. It seems rather pointless to include target-specific binaries that always
produce the exact same output, You might as well just include the output
directly.
That macro is defined for win32/dj_err.exe - which is built via mingw32. But you say you ran it in DOSBox-X... I'm curious how you managed that :)
Ah, good point - I should've documented that - I don't believe I specified any MinGW flags - that might be why
I more or less cobbled something together from the makefile for dj_error and I recall taking a cursory look into the code as well, but I don't recall what I defined specifically.
I should definitely specify WATT32_DJGPP_MINGW and retry compilation
Just a thought - do all supported compilers at least have a "preprocess only" option?
If so, you could pre-process part of errnos.c (VendorName(), VendorVersion(), process()) with the cross-compiler, and then compile that to a native program. You just won't be able to use strings from libc's sys_errlist that way.
Activity
Neo-Desktop commentedon Jun 22, 2023
Ended up just going the cross compilation route for the
errnofiles and running the resulting executable indosbox-xthat being said if anyone needs a copy of
djgpp.errandsyserr.cfordjgpp-gcc1220the following gist has a rendered copy:https://gist.github.com/Neo-Desktop/ad26e888d64b22a59c743ab4e21ac186
gvanem commentedon Jun 22, 2023
I've no idea (I've not used Linux in many years). The
src/configur.shscript was made by Ozkan Sezer.It's terribly outdated. Better pull from Github.
This seems correct for Linux (no djgpp FSextensions there). Maybe you could contribute that to OpenSSL?
sezero commentedon Jun 22, 2023
My old 2.2.11-sezero branch has several improvements to configure.sh and makefile.all:
https://github.com/sezero/watt32/commits/2.2.11-sezero
https://github.com/sezero/watt32/blob/2.2.11-sezero/src/configur.sh
https://github.com/sezero/watt32/blob/2.2.11-sezero/src/makefile.all
Follow their histories -- possibly along with the branch's history.
(The changes will need forward-porting to master branch though.)
jwt27 commentedon Jun 22, 2023
I think something went wrong there:
jwt27 commentedon Jun 22, 2023
A better solution for cross-compiling, would be to run something like:
And then parsing the output from that in a native program/script. But I don't
know if all supported compilers have "dump macro" option like this.
Neo-Desktop commentedon Jun 22, 2023
@gvanem
I have indeed done that at this point
I have opened a ticket here: openssl/openssl#21259 (comment)
@sezero
Thank you so much for these links - I'll look into them later
@jwt27
fascinatingly enough:
according to: https://man7.org/linux/man-pages/man3/errno.3.html
EWOULDBLOCKshould have the same ID asEAGAINbut it seems to have been pushed to41?Which is interesting since
EWOULDBLOCKshould be considered a "vendor"errnoNeo-Desktop commentedon Jun 22, 2023
this is a brilliant solution for my use case, but you're right in that it's very likely only supported by gcc
jwt27 commentedon Jun 23, 2023
I don't think it's intentional, and it seems this is what causes it:
Watt-32/util/errnos.c
Lines 358 to 359 in d99548f
That macro is defined for
win32/dj_err.exe- which is built via mingw32. Butyou say you ran it in DOSBox-X... I'm curious how you managed that :)
Anyway, I'm wondering now why
dj_err.exeis even included in this repo atall. It seems rather pointless to include target-specific binaries that always
produce the exact same output, You might as well just include the output
directly.
Neo-Desktop commentedon Jun 25, 2023
@jwt27
Ah, good point - I should've documented that - I don't believe I specified any MinGW flags - that might be why
I more or less cobbled something together from the makefile for
dj_errorand I recall taking a cursory look into the code as well, but I don't recall what I defined specifically.I should definitely specify
WATT32_DJGPP_MINGWand retry compilationjwt27 commentedon Jun 25, 2023
No, that macro shouldn't be defined, but somehow it is. From the
utildirectory, if you run:
That should do the right thing. Or alternatively, you can use these:
https://github.com/jwt27/build-gcc/blob/master/patch/watt32-djgpp-cvs/djgpp.err
https://github.com/jwt27/build-gcc/blob/master/patch/watt32-djgpp-cvs/syserr.c
jwt27 commentedon Jun 30, 2023
Just a thought - do all supported compilers at least have a "preprocess only" option?
If so, you could pre-process part of
errnos.c(VendorName(),VendorVersion(),process()) with the cross-compiler, and then compile that to a native program. You just won't be able to use strings from libc'ssys_errlistthat way.beebix1980 commentedon Jun 8, 2026
stumbled upon the same problem and fixed it by writing a custom standalone makefile.
makefile.djgpp.txt
gvanem commentedon Jun 10, 2026
With this fix:
Does it really make sense with 2 entries?