-
Notifications
You must be signed in to change notification settings - Fork 39
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
Supplement: Match fmem* functions to common prototypes #80
Conversation
Since ia16-elf-gcc's libi86 received support for fmemcpy, fmemmove and fmemset, its prototypes are in conflict with the replacement functions defined in the suppl directory. If libi86 implements all of the support required for FreeCOM in the future, then we may not need to include suppl, but until then adjust the suppl to match the common prototypes. Patch by @tkchia, and discussion at [fixes FDOS#79]
Hello @tkchia,
I don't want to keep pestering you about these, as currently the compilation is fine, but would you like me to keep reporting them? Many thanks! |
Hello @andrewbird, Thanks for the report. Are you able to come up with a more complete list of the missing functions? Thank you! |
Hello @tkchia, Thank you! |
So looking at the definitions of the supplement I can see the following fmem functions are defined:
I've then run git grep for each of them, and marked them as USED wherever I can see a use that might be used outside of the suppl directory, or within another function in the suppl directory. I've also added the checkbox to show which you already implement. |
Hello @andrewbird, Thanks! Updated Thank you! |
Hello @tkchia,
I think there must be some more prototype mismatches as the functions you recently added now interfere with the ones in suppl without my local patch, so you might find further ones as you add the missing functions. I'm not quite ready to submit my patch to freecom. I have to figure out what Many thanks! |
Hello @tkchia, Many thanks! |
Hello @tkchia, diff --git a/suppl/src/nlstime.c b/suppl/src/nlstime.c
index 1a97fb8..cb8d781 100644
--- a/suppl/src/nlstime.c
+++ b/suppl/src/nlstime.c
@@ -55,7 +55,7 @@ static char const rcsid[] =
"$Id$";
#endif
-#if defined(_MICROC_) || defined(_TC_EARLY_) || defined(__GNUC__)
+#if defined(_MICROC_) || defined(_TC_EARLY_)
#undef HAVE_DOSTIME
#else
#define HAVE_DOSTIME
This comes about because there's a file called
I'm not really sure what the best path forward is? Thank you! |
Hello @tkchia, Thank you! |
Hello @andrewbird, Most of the conflicts in the prototypes are relatively minor:
But there is one prototype conflict that needs special attention. The definition of the
and the function itself is defined in
This means, mixing (If I remember correctly, Bart Oldeman came up with the Thank you! |
Hello @andrewbird, OK... I just remembered that the situation with Bart Oldeman wrote a whole implementation of I am not sure how much FreeCOM still relies on this particular behaviour. Anyway, nowadays Maybe a good course of action for now is to
Let me see if I can whip up a quick PR. Thank you! |
make its prototype agree with the corresponding functions in Open Watcom and (gcc-ia16 +) libi86 See #80 (comment) .
Hello @tkchia, Thank you! |
@andrewbird : that is really nice to hear. Thank you! |
Since ia16-elf-gcc's libi86 received support for fmemcpy, fmemmove
and fmemset, its prototypes are in conflict with the replacement
functions defined in the suppl directory. If libi86 implements all
of the support required for FreeCOM in the future, then we may not
need to include suppl, but until then adjust the suppl to match the
common prototypes.
Patch by @tkchia, and discussion at [fixes #79]