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
[kernel] [libc] [elksemu] (ABI CHANGE) Make _signal syscall accept a far pointer to a far signal handler #629
Conversation
& medium model support
accept a far pointer to a far signal handler This is in preparation for adding support for "medium" memory model (far code + near data) programs to ELKS (see https://github.com/tkchia/build-ia16/issues/14). Currently the kernel assumes that, when a user process handles an asynchronous signal, the signal handler can simply return to a near (16-bit) address. But this may not be true once ELKS allows a user process to run code in a far text segment. This patch changes the semantics of the _signal syscall so that it accepts a far (32-bit) signal handler pointer which returns to a far address. To save data space, I also changed the kernel's internal signal handling structures.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello @tkchia,
Wow, nice work! Impressive.
I like the approach of having the kernel only handle dispositions and a single process-wide far handler, which also saves task data space.
In exec.c, instead of setting a bogus signal handler, why not just reset the process handler to 0, and then handle the very unlikely no-handler case in do_signal with a printk? I feel that would be cleaner, keep more signal code out of exec, and printk instead of stopping the system with panic.
Did you test with DEBUG_SIG on, I am curious if that helped with your implementation.
A side topic: I happened to be thinking of implementing It seems there is no way to specify long arguments. How does this work, the argument count isn't checked, do the scripts just push the total argument count of 'int's and the kernel do_ function just "matches up"? |
Hello @ghaerr,
The From my understanding, if everything works properly,
Yes, I did. :-)
Basically yes, I would say. The Thank you! |
Yep and yep.
That's fine. After debugging is completed, I think it should be removed from exec.c. I am increasingly concerned about kernel code/data space, and keeping things compartmentalized. Also, I have removed many panic's and changed them to printk's where possible, as in general panics hinder the ability to find the problem as the system is inaccessible. |
@tkchia - I am fine with this being committed now, thanks!! |
Hello @ghaerr,
OK.
I think a longer-term solution to this might be to add some more debugging and introspection facilities to the Thank you! |
ELKS no longer compiles after latest merge.
/Users/helge/src/mellvik/elks/libc/system/signal.c: In function ‘signal’:
/Users/helge/src/mellvik/elks/libc/system/signal.c:50:10: error: cannot take address of far static variable
rv = _signal(number, (__kern_sighandler_t) _syscall_signal);
~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/helge/src/mellvik/elks/libc/system/signal.c:50:10: note: use ‘-msegment-relocation-stuff’ to allow this
—Mellvik
… 13. mai 2020 kl. 11:52 skrev tkchia ***@***.***>:
Merged #629 <#629> into master.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub <#629 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA3WGOEN76DCLSB3FHUDFX3RRJUUBANCNFSM4M65MBZQ>.
|
Hello @Mellvik,
The changes require an updated
Thank you! |
Thank you @tkchia,
I'm getting build errors in the toolchain too:
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C /Users/helge/src/mellvik/elks/cross/build/emu86 all
cc -g -c -o op-common.o op-common.c
cc -g -c -o op-id-name.o op-id-name.c
cc -g -c -o op-class.o op-class.c
cc -g -c -o emu-mem-io.o emu-mem-io.c
cc -g -c -o emu-proc.o emu-proc.c
cc -g -c -o emu-serial.o emu-serial.c
emu-serial.c:68:10: warning: implicit declaration of function 'getpt' is invalid in C99
[-Wimplicit-function-declaration]
_ptm = getpt ();
^
1 warning generated.
cc -g -c -o emu-int.o emu-int.c
cc -g -c -o op-exec.o op-exec.c
cc -g -c -o emu-main.o emu-main.c
emu-main.c:45:37: warning: format specifies type 'unsigned long' but the argument has type 'off_t'
(aka 'long long') [-Wformat]
printf ("info: file size=%lXh\n", size);
~~~ ^~~~
%llX
1 warning generated.
cc -o emu86 op-common.o op-id-name.o op-class.o emu-mem-io.o emu-proc.o emu-serial.o emu-int.o op-exec.o emu-main.o
Undefined symbols for architecture x86_64:
"_getpt", referenced from:
_serial_init in emu-serial.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [emu86] Error 1
make: *** [/Users/helge/src/mellvik/elks/cross/build/.emu86.build] Error 2
Build script has terminated with error 1
What did I miss?
—Mellvik
… 13. mai 2020 kl. 13:25 skrev tkchia ***@***.***>:
Hello @Mellvik <https://github.com/Mellvik>,
ELKS no longer compiles after latest merge.
The changes require an updated gcc-ia16 to build properly --- you will need to arrange to download the updated toolchain and rebuild ELKS. E.g.
git clean -x -f
./build.sh
Thank you!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub <#629 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AA3WGOBESPLSGB45YS3I4ETRRJ7S7ANCNFSM4M65MBZQ>.
|
Hello @Mellvik,
Thanks for the report. This seems to come from @mfld-fr's I guess the error is because there is no I will see if I can fix this and submit a pull request to @mfld-fr. Meanwhile you can try and modify the line
to
and rerun Thank you! |
Hello @tkchia,
It used to be that running ./build.sh (or perhaps the previous .sh that built the the toolchain alone), was able to be update the toolchain without deeply cleaning the other portion of the source tree. Now, as @Mellvik has indicated, it doesn't realize the compiler chain has been updated and just runs menuconfig, make clean; make. In my case, I can't afford to clean all untracked files, as I have many helper scripts being used for current projects. Thus, I have to clone a new elks tree, ./build.sh, then mv the cross/ chain over. Can you suggest a modification that would (re)allow just the build chain to be upgraded?
I had been getting this error the last few times (OS X also), but have ignored it, since the toolchain build is usable at this point, and the emulator won't run on OS X anyways. Thank you for the fix suggestion, I should have submitted an issue at that time but didn't think to do so. Thank you! |
Hello @ghaerr,
I think this is because
Looks like an issue worth looking into. Apparently Thank you! |
On another point regarding the toolchain build, I decided to clone from scratch to build another cross/ directory aside from my existing work. FYI, After cloning, build.sh was run, with the following result:
Running ./build.sh again (without clean), started compilation, rather than trying to pull down gmp. It then ran for awhile, then errored in compilation:
Would there be a way that build.sh or another script could restart or check the required .zip files in cross/dist instead of having to start from scratch? I suppose I'll 'rm -rf cross/build' and try again. |
That's not bad, and will certainly force a new build. I was thinking something along the lines of either fixing that build.sh doesn't recognize that a updated build chain is required, or having a separate .sh file that determined the tool chain was out of date, then updated it only, without requiring any dangerous git cleaning. It seems that tools/Makefile has version numbers of gcc and binutils, but they apparently aren't checked by build.sh.
That worked - please regard my previous email as informative only. Thank you! |
build.sh was assuming that the toolchain did not need to be rebuilt whenever cross/.gcc.install exists, but this fails if we need to upgrade to a newer set of gcc-ia16 tools. This fix instead makes build.sh hand over to tools/build.sh (and tools/Makefile), which will do a more complete check. See ghaerr#629 (comment) .
build.sh was assuming that the toolchain did not need to be rebuilt whenever cross/.gcc.install exists, but this fails if we need to upgrade to a newer set of gcc-ia16 tools. This fix instead makes build.sh hand over to tools/build.sh (and tools/Makefile), which will do a more complete check. See ghaerr#629 (comment) . I also tweaked tools/Makefile to handle cases where a tool's .zip file was downloaded only partially, and to clean away old versions of .zip files.
build.sh was assuming that the toolchain did not need to be rebuilt whenever cross/.gcc.install exists, but this fails if we need to upgrade to a newer set of gcc-ia16 tools. This fix instead makes build.sh hand over to tools/build.sh (and tools/Makefile), which will do a more complete check. See ghaerr#629 (comment) . I also tweaked tools/Makefile to handle cases where a tool's .zip file was downloaded only partially, and to clean away old versions of .zip files.
* as mentioned in: lkundrak/dev86#17 the original lkundrak repo is no longer maintained * there are many new commits, we need at least that fix for newer gperf git log --oneline v0.16.21..jbruchon/master e254e0b (jbruchon/master) Merge pull request #21 from tkchia/master 3473bde [libc] update _signal syscall semantics, per ABI change in ELKS at ghaerr/elks#629 d74e90d Merge pull request #20 from tkchia/tkchia/update-syscalls 541a8d5 [libc] update syscall list & ino_t type, per ELKS tree 710e852 Merge pull request #16 from spacerace/master b215454 Merge pull request #17 from mfld-fr/master 870635e Move EMU86 & MON86 to standalone projects 84e3d00 [mon86] Latest touch before moving c2f288c [emu86] Latest touch before moving f7449f3 libc tests for MSDOS target (far away from complete ;)) 6cbd64d fixing problem in string.h introduced by myself -.- 39e04cd Merge branch 'master' of https://github.com/spacerace/dev86 b44e43d Added OpenBSD's timingsafe_bcmp() and timingsafe_memcmp() 857c30e Added BSD's strlcat() and strlcpy(), safe string copy/cat 0764e09 typo in string.h 2fb6a3a swab() 4e09d08 strupr() 2bd985f strset() 5a7bb33 strrev() 56be26a strnset() c919b2d strlwr() b63f295 h+Mf bzero() strnset() strset() strlwr() strupr() strrev() swab() 5985246 removed old implementation of strstr. if anyone needs this file => remains in git history 7b481c0 added bzero() 776929c Merge pull request #15 from spacerace/master 8206ed2 stdlib.h + Makefile changes for getenv() and system() b995d1e getenv() implementation 60466fe system() implementation 12439ac note on __mkenv (related to getenv commits from me) aae041a removed empty line on top of file 6d6d91f removed uneeded empty file (see sound.c) ff7d37e formatting (tabs) 246418a formatting in one line fixed 4ff1f48 Merge pull request #14 from mfld-fr/emu86 1b8f8db Add data & suspicious opcode breakpoints 798c4a2 Merge pull request #13 from rdebath/jbruchon 2eb4d82 Add .travis.yml for running "make distribution" tests. 2ea54e1 Merge pull request #12 from mgorny/makez f14f78e build: Always use $(MAKE) to spawn sub-make dfb9b42 Merge pull request #11 from mfld-fr/emu86 6ae2b54 Make dev86 working "in tree" 224843f Merge pull request lgirdk#10 from mfld-fr/emu86 e56a958 [emu86] Test against ELKS - Round 3 0099ec8 Merge pull request lgirdk#9 from mfld-fr/emu86 32865c8 [emu86] Test against ELKS - Round 2 e1aa9bd Merge pull request lgirdk#8 from mfld-fr/emu86 c7ebb2a [emu86] Optimize execution lookup 57019a7 [emu86] Complete decoding optimization de516a5 [emu86] Fix mfld-fr#21 : opcode 90h (NOP) 40f7c99 [emu86] Optimize decoding < C0h 91d4c61 [emu86] Fix mfld-fr#16 : add pcat timing options d519caf [emu86] Fix mfld-fr#14 : trace support 3a479e7 [emu86] Check vector before interrupt 7eec401 Optimize decoding < 80h 98334d3 Fix mfld-fr#8 and warning cleanup 0579c82 Merge pull request lgirdk#7 from mfld-fr/master 49492b9 [emu86] Add option for tiny model da6a960 [emu86] fix #19 : remove PT1 test e3b465f [dis88] Move back from ELKS f2ea895 Merge pull request lgirdk#6 from mfld-fr/master b0700f4 [mon86] First stage removal after second validated 6ef705d [mon86] Fix #18 : Complete host tool 1fa5a70 Fix lgirdk#10 and #11 : Target specific code 22c7770 Merge branch 'bug86' e25c996 [mon86] Tune host tool for read & write 47aadb5 [mon86] Fix #15 : Cleanup in host tool ae7c628 [mon86] Makefile for host part + more testing ae6c84a [mon86] New host tool + fix context parsing c9205ac Add missing void types to libc/misc/qsort.c 7a4f074 unproto: fix macOS Sierra compilation error reported by scontini76 ac6d924 unproto: better CFLAGS f86ad57 bcc: if EOF is hit before end of comment, report it as an error fcdbcd7 limits.h: add PATH_MAX 7239fea include: Add a skeleton for inttypes.h f3e88f9 Remove accidental ignoring of "include" 0ac417a Merge branch 'master' of https://github.com/jbruchon/dev86 74753fa Fix size_t declaration, add ssize_t declaration 4be53b7 Merge pull request lgirdk#5 from mfld-fr/master d5ecd9c [mon86] Second stage tested on real SBC 81b0ab2 [mon86] Second stage monitor completed b55cbbc [mon86] Trace & break interrupt support 18a5ba8 Merge pull request lgirdk#4 from mfld-fr/master 77f028b [mon86] First stage monitor completed 07689d4 Merge remote-tracking branch 'upstream/master' e043007 Revert accidental bcc changes in commit 3c83dee 495b99a [emu86] Test against ELKS - Round 1 5508efa Merge pull request lgirdk#3 from mfld-fr/master 8aa3313 [emu86] Testing against a real ROM - Round 1 d8ac93e [emu86] Fixed lgirdk#7 : segment selection & override 5b521d6 [emu86] Test against a real POST - Round 2 3c83dee [emu86] Test against a real POST - Round 1 b45a3d2 [emu86] Command line options 345513c [emu86] Fixed lgirdk#6 : simplified variable size 2d7d316 [emu86] Fixed lgirdk#2 + FAR call & ret 8ac48bf Import MON86 standalone project needed by EMU86 1da15c0 Bug fixes after EMU86 testing 1dc5fd3 Merge pull request lgirdk#2 from mfld-fr/master 24935c0 [emu86] Final touch before the weekend 9090120 [emu86] Fixed lgirdk#5 : redirect serial I/O to PTS 96dfb1a [emu86] Added memory and stack dumps 4fbcead [emu86] Fixed lgirdk#1 : move reg num out of val struct 205e47d Improved EMU86 for MON86 testing 377ed40 Merge branch 'master' into emu86 fd3cf7e Added partial ZF and CF flags support c758426 Merge pull request lgirdk#1 from mfld-fr/master 72ad336 Merge branch 'master' of git://github.com/jbruchon/dev86 into emu86 2d8398b More support of 8086 instruction set b2eadba EMU86 second draft 9a8e116 EMU86 first draft fb3b436 Revert "fix linker alignment for .bss segment" bf19066 Merge https://github.com/anchorz/dev86-1 4e8476e Revert "copt: fix a minor glitch in copt/rules.86" 1bcc185 Merge remote-tracking branch 'upstream/master' b0426b2 Force output of initial segment directive a44b267 fix linker alignment for .bss segment c0832c8 under CYGWIN bcc requires -o option to compile an .o file otherwise it ends up as .exe and cannot link 80d485b (origin/master, origin/HEAD) Add stdint.h header to recognize some C99 types 29dbfca libc/msdos: program name missing in argv[0] b0e9b25 libc/msdos: __mkargv es register changed 4a350d3 ar: rename of temporary libary fails on some platforms cf72284 copt: fix a minor glitch in copt/rules.86 ce888f6 Allow copt rules with empty outputs; fix minor glitch in copt/rules.86 4ed1997 bcc/dbprintf.c: ix implicit declaration warnings 9de6f00 Make a.out.h portable to 64 bit systems 7eae1c0 Change strstr() to Jody's two-way implementation 2f53e83 Add a .gitignore file c21e14a initial version with minimal routines fa9c32e Add stdint.h header to recognize some C99 types 6e8432b Minor style cleanups b7a191c Add "make distclean" and make it really clean everything dab04fb bootblocks: long -> int32_t for proper building on 64-bit hosts 0d9ee41 bootblocks requires as86_encap to build
* as mentioned in: lkundrak/dev86#17 the original lkundrak repo is no longer maintained * there are many new commits, we need at least that fix for newer gperf git log --oneline v0.16.21..jbruchon/master e254e0b (jbruchon/master) Merge pull request #21 from tkchia/master 3473bde [libc] update _signal syscall semantics, per ABI change in ELKS at ghaerr/elks#629 d74e90d Merge pull request #20 from tkchia/tkchia/update-syscalls 541a8d5 [libc] update syscall list & ino_t type, per ELKS tree 710e852 Merge pull request #16 from spacerace/master b215454 Merge pull request #17 from mfld-fr/master 870635e Move EMU86 & MON86 to standalone projects 84e3d00 [mon86] Latest touch before moving c2f288c [emu86] Latest touch before moving f7449f3 libc tests for MSDOS target (far away from complete ;)) 6cbd64d fixing problem in string.h introduced by myself -.- 39e04cd Merge branch 'master' of https://github.com/spacerace/dev86 b44e43d Added OpenBSD's timingsafe_bcmp() and timingsafe_memcmp() 857c30e Added BSD's strlcat() and strlcpy(), safe string copy/cat 0764e09 typo in string.h 2fb6a3a swab() 4e09d08 strupr() 2bd985f strset() 5a7bb33 strrev() 56be26a strnset() c919b2d strlwr() b63f295 h+Mf bzero() strnset() strset() strlwr() strupr() strrev() swab() 5985246 removed old implementation of strstr. if anyone needs this file => remains in git history 7b481c0 added bzero() 776929c Merge pull request #15 from spacerace/master 8206ed2 stdlib.h + Makefile changes for getenv() and system() b995d1e getenv() implementation 60466fe system() implementation 12439ac note on __mkenv (related to getenv commits from me) aae041a removed empty line on top of file 6d6d91f removed uneeded empty file (see sound.c) ff7d37e formatting (tabs) 246418a formatting in one line fixed 4ff1f48 Merge pull request #14 from mfld-fr/emu86 1b8f8db Add data & suspicious opcode breakpoints 798c4a2 Merge pull request #13 from rdebath/jbruchon 2eb4d82 Add .travis.yml for running "make distribution" tests. 2ea54e1 Merge pull request #12 from mgorny/makez f14f78e build: Always use $(MAKE) to spawn sub-make dfb9b42 Merge pull request #11 from mfld-fr/emu86 6ae2b54 Make dev86 working "in tree" 224843f Merge pull request lgirdk#10 from mfld-fr/emu86 e56a958 [emu86] Test against ELKS - Round 3 0099ec8 Merge pull request lgirdk#9 from mfld-fr/emu86 32865c8 [emu86] Test against ELKS - Round 2 e1aa9bd Merge pull request lgirdk#8 from mfld-fr/emu86 c7ebb2a [emu86] Optimize execution lookup 57019a7 [emu86] Complete decoding optimization de516a5 [emu86] Fix mfld-fr#21 : opcode 90h (NOP) 40f7c99 [emu86] Optimize decoding < C0h 91d4c61 [emu86] Fix mfld-fr#16 : add pcat timing options d519caf [emu86] Fix mfld-fr#14 : trace support 3a479e7 [emu86] Check vector before interrupt 7eec401 Optimize decoding < 80h 98334d3 Fix mfld-fr#8 and warning cleanup 0579c82 Merge pull request lgirdk#7 from mfld-fr/master 49492b9 [emu86] Add option for tiny model da6a960 [emu86] fix #19 : remove PT1 test e3b465f [dis88] Move back from ELKS f2ea895 Merge pull request lgirdk#6 from mfld-fr/master b0700f4 [mon86] First stage removal after second validated 6ef705d [mon86] Fix #18 : Complete host tool 1fa5a70 Fix lgirdk#10 and #11 : Target specific code 22c7770 Merge branch 'bug86' e25c996 [mon86] Tune host tool for read & write 47aadb5 [mon86] Fix #15 : Cleanup in host tool ae7c628 [mon86] Makefile for host part + more testing ae6c84a [mon86] New host tool + fix context parsing c9205ac Add missing void types to libc/misc/qsort.c 7a4f074 unproto: fix macOS Sierra compilation error reported by scontini76 ac6d924 unproto: better CFLAGS f86ad57 bcc: if EOF is hit before end of comment, report it as an error fcdbcd7 limits.h: add PATH_MAX 7239fea include: Add a skeleton for inttypes.h f3e88f9 Remove accidental ignoring of "include" 0ac417a Merge branch 'master' of https://github.com/jbruchon/dev86 74753fa Fix size_t declaration, add ssize_t declaration 4be53b7 Merge pull request lgirdk#5 from mfld-fr/master d5ecd9c [mon86] Second stage tested on real SBC 81b0ab2 [mon86] Second stage monitor completed b55cbbc [mon86] Trace & break interrupt support 18a5ba8 Merge pull request lgirdk#4 from mfld-fr/master 77f028b [mon86] First stage monitor completed 07689d4 Merge remote-tracking branch 'upstream/master' e043007 Revert accidental bcc changes in commit 3c83dee 495b99a [emu86] Test against ELKS - Round 1 5508efa Merge pull request lgirdk#3 from mfld-fr/master 8aa3313 [emu86] Testing against a real ROM - Round 1 d8ac93e [emu86] Fixed lgirdk#7 : segment selection & override 5b521d6 [emu86] Test against a real POST - Round 2 3c83dee [emu86] Test against a real POST - Round 1 b45a3d2 [emu86] Command line options 345513c [emu86] Fixed lgirdk#6 : simplified variable size 2d7d316 [emu86] Fixed lgirdk#2 + FAR call & ret 8ac48bf Import MON86 standalone project needed by EMU86 1da15c0 Bug fixes after EMU86 testing 1dc5fd3 Merge pull request lgirdk#2 from mfld-fr/master 24935c0 [emu86] Final touch before the weekend 9090120 [emu86] Fixed lgirdk#5 : redirect serial I/O to PTS 96dfb1a [emu86] Added memory and stack dumps 4fbcead [emu86] Fixed lgirdk#1 : move reg num out of val struct 205e47d Improved EMU86 for MON86 testing 377ed40 Merge branch 'master' into emu86 fd3cf7e Added partial ZF and CF flags support c758426 Merge pull request lgirdk#1 from mfld-fr/master 72ad336 Merge branch 'master' of git://github.com/jbruchon/dev86 into emu86 2d8398b More support of 8086 instruction set b2eadba EMU86 second draft 9a8e116 EMU86 first draft fb3b436 Revert "fix linker alignment for .bss segment" bf19066 Merge https://github.com/anchorz/dev86-1 4e8476e Revert "copt: fix a minor glitch in copt/rules.86" 1bcc185 Merge remote-tracking branch 'upstream/master' b0426b2 Force output of initial segment directive a44b267 fix linker alignment for .bss segment c0832c8 under CYGWIN bcc requires -o option to compile an .o file otherwise it ends up as .exe and cannot link 80d485b (origin/master, origin/HEAD) Add stdint.h header to recognize some C99 types 29dbfca libc/msdos: program name missing in argv[0] b0e9b25 libc/msdos: __mkargv es register changed 4a350d3 ar: rename of temporary libary fails on some platforms cf72284 copt: fix a minor glitch in copt/rules.86 ce888f6 Allow copt rules with empty outputs; fix minor glitch in copt/rules.86 4ed1997 bcc/dbprintf.c: ix implicit declaration warnings 9de6f00 Make a.out.h portable to 64 bit systems 7eae1c0 Change strstr() to Jody's two-way implementation 2f53e83 Add a .gitignore file c21e14a initial version with minimal routines fa9c32e Add stdint.h header to recognize some C99 types 6e8432b Minor style cleanups b7a191c Add "make distclean" and make it really clean everything dab04fb bootblocks: long -> int32_t for proper building on 64-bit hosts 0d9ee41 bootblocks requires as86_encap to build
* as mentioned in: lkundrak/dev86#17 the original lkundrak repo is no longer maintained * pass only BASE_PV as VERSION in EXTRA_OEMAKE to prevent: | version.h:4:20: error: ‘gitAUTOINC’ undeclared (first use in this function) | #define VER_PAT 21+gitAUTOINC+e254e0b196 | ^ * there are many new commits, we need at least that fix for newer gperf git log --oneline v0.16.21..jbruchon/master e254e0b (jbruchon/master) Merge pull request #21 from tkchia/master 3473bde [libc] update _signal syscall semantics, per ABI change in ELKS at ghaerr/elks#629 d74e90d Merge pull request #20 from tkchia/tkchia/update-syscalls 541a8d5 [libc] update syscall list & ino_t type, per ELKS tree 710e852 Merge pull request #16 from spacerace/master b215454 Merge pull request #17 from mfld-fr/master 870635e Move EMU86 & MON86 to standalone projects 84e3d00 [mon86] Latest touch before moving c2f288c [emu86] Latest touch before moving f7449f3 libc tests for MSDOS target (far away from complete ;)) 6cbd64d fixing problem in string.h introduced by myself -.- 39e04cd Merge branch 'master' of https://github.com/spacerace/dev86 b44e43d Added OpenBSD's timingsafe_bcmp() and timingsafe_memcmp() 857c30e Added BSD's strlcat() and strlcpy(), safe string copy/cat 0764e09 typo in string.h 2fb6a3a swab() 4e09d08 strupr() 2bd985f strset() 5a7bb33 strrev() 56be26a strnset() c919b2d strlwr() b63f295 h+Mf bzero() strnset() strset() strlwr() strupr() strrev() swab() 5985246 removed old implementation of strstr. if anyone needs this file => remains in git history 7b481c0 added bzero() 776929c Merge pull request #15 from spacerace/master 8206ed2 stdlib.h + Makefile changes for getenv() and system() b995d1e getenv() implementation 60466fe system() implementation 12439ac note on __mkenv (related to getenv commits from me) aae041a removed empty line on top of file 6d6d91f removed uneeded empty file (see sound.c) ff7d37e formatting (tabs) 246418a formatting in one line fixed 4ff1f48 Merge pull request #14 from mfld-fr/emu86 1b8f8db Add data & suspicious opcode breakpoints 798c4a2 Merge pull request #13 from rdebath/jbruchon 2eb4d82 Add .travis.yml for running "make distribution" tests. 2ea54e1 Merge pull request #12 from mgorny/makez f14f78e build: Always use $(MAKE) to spawn sub-make dfb9b42 Merge pull request #11 from mfld-fr/emu86 6ae2b54 Make dev86 working "in tree" 224843f Merge pull request lgirdk#10 from mfld-fr/emu86 e56a958 [emu86] Test against ELKS - Round 3 0099ec8 Merge pull request lgirdk#9 from mfld-fr/emu86 32865c8 [emu86] Test against ELKS - Round 2 e1aa9bd Merge pull request lgirdk#8 from mfld-fr/emu86 c7ebb2a [emu86] Optimize execution lookup 57019a7 [emu86] Complete decoding optimization de516a5 [emu86] Fix mfld-fr#21 : opcode 90h (NOP) 40f7c99 [emu86] Optimize decoding < C0h 91d4c61 [emu86] Fix mfld-fr#16 : add pcat timing options d519caf [emu86] Fix mfld-fr#14 : trace support 3a479e7 [emu86] Check vector before interrupt 7eec401 Optimize decoding < 80h 98334d3 Fix mfld-fr#8 and warning cleanup 0579c82 Merge pull request lgirdk#7 from mfld-fr/master 49492b9 [emu86] Add option for tiny model da6a960 [emu86] fix #19 : remove PT1 test e3b465f [dis88] Move back from ELKS f2ea895 Merge pull request lgirdk#6 from mfld-fr/master b0700f4 [mon86] First stage removal after second validated 6ef705d [mon86] Fix #18 : Complete host tool 1fa5a70 Fix lgirdk#10 and #11 : Target specific code 22c7770 Merge branch 'bug86' e25c996 [mon86] Tune host tool for read & write 47aadb5 [mon86] Fix #15 : Cleanup in host tool ae7c628 [mon86] Makefile for host part + more testing ae6c84a [mon86] New host tool + fix context parsing c9205ac Add missing void types to libc/misc/qsort.c 7a4f074 unproto: fix macOS Sierra compilation error reported by scontini76 ac6d924 unproto: better CFLAGS f86ad57 bcc: if EOF is hit before end of comment, report it as an error fcdbcd7 limits.h: add PATH_MAX 7239fea include: Add a skeleton for inttypes.h f3e88f9 Remove accidental ignoring of "include" 0ac417a Merge branch 'master' of https://github.com/jbruchon/dev86 74753fa Fix size_t declaration, add ssize_t declaration 4be53b7 Merge pull request lgirdk#5 from mfld-fr/master d5ecd9c [mon86] Second stage tested on real SBC 81b0ab2 [mon86] Second stage monitor completed b55cbbc [mon86] Trace & break interrupt support 18a5ba8 Merge pull request lgirdk#4 from mfld-fr/master 77f028b [mon86] First stage monitor completed 07689d4 Merge remote-tracking branch 'upstream/master' e043007 Revert accidental bcc changes in commit 3c83dee 495b99a [emu86] Test against ELKS - Round 1 5508efa Merge pull request lgirdk#3 from mfld-fr/master 8aa3313 [emu86] Testing against a real ROM - Round 1 d8ac93e [emu86] Fixed lgirdk#7 : segment selection & override 5b521d6 [emu86] Test against a real POST - Round 2 3c83dee [emu86] Test against a real POST - Round 1 b45a3d2 [emu86] Command line options 345513c [emu86] Fixed lgirdk#6 : simplified variable size 2d7d316 [emu86] Fixed lgirdk#2 + FAR call & ret 8ac48bf Import MON86 standalone project needed by EMU86 1da15c0 Bug fixes after EMU86 testing 1dc5fd3 Merge pull request lgirdk#2 from mfld-fr/master 24935c0 [emu86] Final touch before the weekend 9090120 [emu86] Fixed lgirdk#5 : redirect serial I/O to PTS 96dfb1a [emu86] Added memory and stack dumps 4fbcead [emu86] Fixed lgirdk#1 : move reg num out of val struct 205e47d Improved EMU86 for MON86 testing 377ed40 Merge branch 'master' into emu86 fd3cf7e Added partial ZF and CF flags support c758426 Merge pull request lgirdk#1 from mfld-fr/master 72ad336 Merge branch 'master' of git://github.com/jbruchon/dev86 into emu86 2d8398b More support of 8086 instruction set b2eadba EMU86 second draft 9a8e116 EMU86 first draft fb3b436 Revert "fix linker alignment for .bss segment" bf19066 Merge https://github.com/anchorz/dev86-1 4e8476e Revert "copt: fix a minor glitch in copt/rules.86" 1bcc185 Merge remote-tracking branch 'upstream/master' b0426b2 Force output of initial segment directive a44b267 fix linker alignment for .bss segment c0832c8 under CYGWIN bcc requires -o option to compile an .o file otherwise it ends up as .exe and cannot link 80d485b (origin/master, origin/HEAD) Add stdint.h header to recognize some C99 types 29dbfca libc/msdos: program name missing in argv[0] b0e9b25 libc/msdos: __mkargv es register changed 4a350d3 ar: rename of temporary libary fails on some platforms cf72284 copt: fix a minor glitch in copt/rules.86 ce888f6 Allow copt rules with empty outputs; fix minor glitch in copt/rules.86 4ed1997 bcc/dbprintf.c: ix implicit declaration warnings 9de6f00 Make a.out.h portable to 64 bit systems 7eae1c0 Change strstr() to Jody's two-way implementation 2f53e83 Add a .gitignore file c21e14a initial version with minimal routines fa9c32e Add stdint.h header to recognize some C99 types 6e8432b Minor style cleanups b7a191c Add "make distclean" and make it really clean everything dab04fb bootblocks: long -> int32_t for proper building on 64-bit hosts 0d9ee41 bootblocks requires as86_encap to build
* as mentioned in: lkundrak/dev86#17 the original lkundrak repo is no longer maintained * pass only BASE_PV as VERSION in EXTRA_OEMAKE to prevent: | version.h:4:20: error: ‘gitAUTOINC’ undeclared (first use in this function) | #define VER_PAT 21+gitAUTOINC+e254e0b196 | ^ * there are many new commits, we need at least that fix for newer gperf git log --oneline v0.16.21..jbruchon/master e254e0b (jbruchon/master) Merge pull request #21 from tkchia/master 3473bde [libc] update _signal syscall semantics, per ABI change in ELKS at ghaerr/elks#629 d74e90d Merge pull request #20 from tkchia/tkchia/update-syscalls 541a8d5 [libc] update syscall list & ino_t type, per ELKS tree 710e852 Merge pull request #16 from spacerace/master b215454 Merge pull request #17 from mfld-fr/master 870635e Move EMU86 & MON86 to standalone projects 84e3d00 [mon86] Latest touch before moving c2f288c [emu86] Latest touch before moving f7449f3 libc tests for MSDOS target (far away from complete ;)) 6cbd64d fixing problem in string.h introduced by myself -.- 39e04cd Merge branch 'master' of https://github.com/spacerace/dev86 b44e43d Added OpenBSD's timingsafe_bcmp() and timingsafe_memcmp() 857c30e Added BSD's strlcat() and strlcpy(), safe string copy/cat 0764e09 typo in string.h 2fb6a3a swab() 4e09d08 strupr() 2bd985f strset() 5a7bb33 strrev() 56be26a strnset() c919b2d strlwr() b63f295 h+Mf bzero() strnset() strset() strlwr() strupr() strrev() swab() 5985246 removed old implementation of strstr. if anyone needs this file => remains in git history 7b481c0 added bzero() 776929c Merge pull request #15 from spacerace/master 8206ed2 stdlib.h + Makefile changes for getenv() and system() b995d1e getenv() implementation 60466fe system() implementation 12439ac note on __mkenv (related to getenv commits from me) aae041a removed empty line on top of file 6d6d91f removed uneeded empty file (see sound.c) ff7d37e formatting (tabs) 246418a formatting in one line fixed 4ff1f48 Merge pull request #14 from mfld-fr/emu86 1b8f8db Add data & suspicious opcode breakpoints 798c4a2 Merge pull request #13 from rdebath/jbruchon 2eb4d82 Add .travis.yml for running "make distribution" tests. 2ea54e1 Merge pull request #12 from mgorny/makez f14f78e build: Always use $(MAKE) to spawn sub-make dfb9b42 Merge pull request #11 from mfld-fr/emu86 6ae2b54 Make dev86 working "in tree" 224843f Merge pull request lgirdk#10 from mfld-fr/emu86 e56a958 [emu86] Test against ELKS - Round 3 0099ec8 Merge pull request lgirdk#9 from mfld-fr/emu86 32865c8 [emu86] Test against ELKS - Round 2 e1aa9bd Merge pull request lgirdk#8 from mfld-fr/emu86 c7ebb2a [emu86] Optimize execution lookup 57019a7 [emu86] Complete decoding optimization de516a5 [emu86] Fix mfld-fr#21 : opcode 90h (NOP) 40f7c99 [emu86] Optimize decoding < C0h 91d4c61 [emu86] Fix mfld-fr#16 : add pcat timing options d519caf [emu86] Fix mfld-fr#14 : trace support 3a479e7 [emu86] Check vector before interrupt 7eec401 Optimize decoding < 80h 98334d3 Fix mfld-fr#8 and warning cleanup 0579c82 Merge pull request lgirdk#7 from mfld-fr/master 49492b9 [emu86] Add option for tiny model da6a960 [emu86] fix #19 : remove PT1 test e3b465f [dis88] Move back from ELKS f2ea895 Merge pull request lgirdk#6 from mfld-fr/master b0700f4 [mon86] First stage removal after second validated 6ef705d [mon86] Fix #18 : Complete host tool 1fa5a70 Fix lgirdk#10 and #11 : Target specific code 22c7770 Merge branch 'bug86' e25c996 [mon86] Tune host tool for read & write 47aadb5 [mon86] Fix #15 : Cleanup in host tool ae7c628 [mon86] Makefile for host part + more testing ae6c84a [mon86] New host tool + fix context parsing c9205ac Add missing void types to libc/misc/qsort.c 7a4f074 unproto: fix macOS Sierra compilation error reported by scontini76 ac6d924 unproto: better CFLAGS f86ad57 bcc: if EOF is hit before end of comment, report it as an error fcdbcd7 limits.h: add PATH_MAX 7239fea include: Add a skeleton for inttypes.h f3e88f9 Remove accidental ignoring of "include" 0ac417a Merge branch 'master' of https://github.com/jbruchon/dev86 74753fa Fix size_t declaration, add ssize_t declaration 4be53b7 Merge pull request lgirdk#5 from mfld-fr/master d5ecd9c [mon86] Second stage tested on real SBC 81b0ab2 [mon86] Second stage monitor completed b55cbbc [mon86] Trace & break interrupt support 18a5ba8 Merge pull request lgirdk#4 from mfld-fr/master 77f028b [mon86] First stage monitor completed 07689d4 Merge remote-tracking branch 'upstream/master' e043007 Revert accidental bcc changes in commit 3c83dee 495b99a [emu86] Test against ELKS - Round 1 5508efa Merge pull request lgirdk#3 from mfld-fr/master 8aa3313 [emu86] Testing against a real ROM - Round 1 d8ac93e [emu86] Fixed lgirdk#7 : segment selection & override 5b521d6 [emu86] Test against a real POST - Round 2 3c83dee [emu86] Test against a real POST - Round 1 b45a3d2 [emu86] Command line options 345513c [emu86] Fixed lgirdk#6 : simplified variable size 2d7d316 [emu86] Fixed lgirdk#2 + FAR call & ret 8ac48bf Import MON86 standalone project needed by EMU86 1da15c0 Bug fixes after EMU86 testing 1dc5fd3 Merge pull request lgirdk#2 from mfld-fr/master 24935c0 [emu86] Final touch before the weekend 9090120 [emu86] Fixed lgirdk#5 : redirect serial I/O to PTS 96dfb1a [emu86] Added memory and stack dumps 4fbcead [emu86] Fixed lgirdk#1 : move reg num out of val struct 205e47d Improved EMU86 for MON86 testing 377ed40 Merge branch 'master' into emu86 fd3cf7e Added partial ZF and CF flags support c758426 Merge pull request lgirdk#1 from mfld-fr/master 72ad336 Merge branch 'master' of git://github.com/jbruchon/dev86 into emu86 2d8398b More support of 8086 instruction set b2eadba EMU86 second draft 9a8e116 EMU86 first draft fb3b436 Revert "fix linker alignment for .bss segment" bf19066 Merge https://github.com/anchorz/dev86-1 4e8476e Revert "copt: fix a minor glitch in copt/rules.86" 1bcc185 Merge remote-tracking branch 'upstream/master' b0426b2 Force output of initial segment directive a44b267 fix linker alignment for .bss segment c0832c8 under CYGWIN bcc requires -o option to compile an .o file otherwise it ends up as .exe and cannot link 80d485b (origin/master, origin/HEAD) Add stdint.h header to recognize some C99 types 29dbfca libc/msdos: program name missing in argv[0] b0e9b25 libc/msdos: __mkargv es register changed 4a350d3 ar: rename of temporary libary fails on some platforms cf72284 copt: fix a minor glitch in copt/rules.86 ce888f6 Allow copt rules with empty outputs; fix minor glitch in copt/rules.86 4ed1997 bcc/dbprintf.c: ix implicit declaration warnings 9de6f00 Make a.out.h portable to 64 bit systems 7eae1c0 Change strstr() to Jody's two-way implementation 2f53e83 Add a .gitignore file c21e14a initial version with minimal routines fa9c32e Add stdint.h header to recognize some C99 types 6e8432b Minor style cleanups b7a191c Add "make distclean" and make it really clean everything dab04fb bootblocks: long -> int32_t for proper building on 64-bit hosts 0d9ee41 bootblocks requires as86_encap to build Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* as mentioned in: lkundrak/dev86#17 the original lkundrak repo is no longer maintained * pass only BASE_PV as VERSION in EXTRA_OEMAKE to prevent: | version.h:4:20: error: ‘gitAUTOINC’ undeclared (first use in this function) | #define VER_PAT 21+gitAUTOINC+e254e0b196 | ^ * there are many new commits, we need at least that fix for newer gperf git log --oneline v0.16.21..jbruchon/master e254e0b (jbruchon/master) Merge pull request #21 from tkchia/master 3473bde [libc] update _signal syscall semantics, per ABI change in ELKS at ghaerr/elks#629 d74e90d Merge pull request #20 from tkchia/tkchia/update-syscalls 541a8d5 [libc] update syscall list & ino_t type, per ELKS tree 710e852 Merge pull request #16 from spacerace/master b215454 Merge pull request #17 from mfld-fr/master 870635e Move EMU86 & MON86 to standalone projects 84e3d00 [mon86] Latest touch before moving c2f288c [emu86] Latest touch before moving f7449f3 libc tests for MSDOS target (far away from complete ;)) 6cbd64d fixing problem in string.h introduced by myself -.- 39e04cd Merge branch 'master' of https://github.com/spacerace/dev86 b44e43d Added OpenBSD's timingsafe_bcmp() and timingsafe_memcmp() 857c30e Added BSD's strlcat() and strlcpy(), safe string copy/cat 0764e09 typo in string.h 2fb6a3a swab() 4e09d08 strupr() 2bd985f strset() 5a7bb33 strrev() 56be26a strnset() c919b2d strlwr() b63f295 h+Mf bzero() strnset() strset() strlwr() strupr() strrev() swab() 5985246 removed old implementation of strstr. if anyone needs this file => remains in git history 7b481c0 added bzero() 776929c Merge pull request #15 from spacerace/master 8206ed2 stdlib.h + Makefile changes for getenv() and system() b995d1e getenv() implementation 60466fe system() implementation 12439ac note on __mkenv (related to getenv commits from me) aae041a removed empty line on top of file 6d6d91f removed uneeded empty file (see sound.c) ff7d37e formatting (tabs) 246418a formatting in one line fixed 4ff1f48 Merge pull request #14 from mfld-fr/emu86 1b8f8db Add data & suspicious opcode breakpoints 798c4a2 Merge pull request #13 from rdebath/jbruchon 2eb4d82 Add .travis.yml for running "make distribution" tests. 2ea54e1 Merge pull request #12 from mgorny/makez f14f78e build: Always use $(MAKE) to spawn sub-make dfb9b42 Merge pull request #11 from mfld-fr/emu86 6ae2b54 Make dev86 working "in tree" 224843f Merge pull request lgirdk#10 from mfld-fr/emu86 e56a958 [emu86] Test against ELKS - Round 3 0099ec8 Merge pull request lgirdk#9 from mfld-fr/emu86 32865c8 [emu86] Test against ELKS - Round 2 e1aa9bd Merge pull request lgirdk#8 from mfld-fr/emu86 c7ebb2a [emu86] Optimize execution lookup 57019a7 [emu86] Complete decoding optimization de516a5 [emu86] Fix mfld-fr#21 : opcode 90h (NOP) 40f7c99 [emu86] Optimize decoding < C0h 91d4c61 [emu86] Fix mfld-fr#16 : add pcat timing options d519caf [emu86] Fix mfld-fr#14 : trace support 3a479e7 [emu86] Check vector before interrupt 7eec401 Optimize decoding < 80h 98334d3 Fix mfld-fr#8 and warning cleanup 0579c82 Merge pull request lgirdk#7 from mfld-fr/master 49492b9 [emu86] Add option for tiny model da6a960 [emu86] fix #19 : remove PT1 test e3b465f [dis88] Move back from ELKS f2ea895 Merge pull request lgirdk#6 from mfld-fr/master b0700f4 [mon86] First stage removal after second validated 6ef705d [mon86] Fix #18 : Complete host tool 1fa5a70 Fix lgirdk#10 and #11 : Target specific code 22c7770 Merge branch 'bug86' e25c996 [mon86] Tune host tool for read & write 47aadb5 [mon86] Fix #15 : Cleanup in host tool ae7c628 [mon86] Makefile for host part + more testing ae6c84a [mon86] New host tool + fix context parsing c9205ac Add missing void types to libc/misc/qsort.c 7a4f074 unproto: fix macOS Sierra compilation error reported by scontini76 ac6d924 unproto: better CFLAGS f86ad57 bcc: if EOF is hit before end of comment, report it as an error fcdbcd7 limits.h: add PATH_MAX 7239fea include: Add a skeleton for inttypes.h f3e88f9 Remove accidental ignoring of "include" 0ac417a Merge branch 'master' of https://github.com/jbruchon/dev86 74753fa Fix size_t declaration, add ssize_t declaration 4be53b7 Merge pull request lgirdk#5 from mfld-fr/master d5ecd9c [mon86] Second stage tested on real SBC 81b0ab2 [mon86] Second stage monitor completed b55cbbc [mon86] Trace & break interrupt support 18a5ba8 Merge pull request lgirdk#4 from mfld-fr/master 77f028b [mon86] First stage monitor completed 07689d4 Merge remote-tracking branch 'upstream/master' e043007 Revert accidental bcc changes in commit 3c83dee 495b99a [emu86] Test against ELKS - Round 1 5508efa Merge pull request lgirdk#3 from mfld-fr/master 8aa3313 [emu86] Testing against a real ROM - Round 1 d8ac93e [emu86] Fixed lgirdk#7 : segment selection & override 5b521d6 [emu86] Test against a real POST - Round 2 3c83dee [emu86] Test against a real POST - Round 1 b45a3d2 [emu86] Command line options 345513c [emu86] Fixed lgirdk#6 : simplified variable size 2d7d316 [emu86] Fixed lgirdk#2 + FAR call & ret 8ac48bf Import MON86 standalone project needed by EMU86 1da15c0 Bug fixes after EMU86 testing 1dc5fd3 Merge pull request lgirdk#2 from mfld-fr/master 24935c0 [emu86] Final touch before the weekend 9090120 [emu86] Fixed lgirdk#5 : redirect serial I/O to PTS 96dfb1a [emu86] Added memory and stack dumps 4fbcead [emu86] Fixed lgirdk#1 : move reg num out of val struct 205e47d Improved EMU86 for MON86 testing 377ed40 Merge branch 'master' into emu86 fd3cf7e Added partial ZF and CF flags support c758426 Merge pull request lgirdk#1 from mfld-fr/master 72ad336 Merge branch 'master' of git://github.com/jbruchon/dev86 into emu86 2d8398b More support of 8086 instruction set b2eadba EMU86 second draft 9a8e116 EMU86 first draft fb3b436 Revert "fix linker alignment for .bss segment" bf19066 Merge https://github.com/anchorz/dev86-1 4e8476e Revert "copt: fix a minor glitch in copt/rules.86" 1bcc185 Merge remote-tracking branch 'upstream/master' b0426b2 Force output of initial segment directive a44b267 fix linker alignment for .bss segment c0832c8 under CYGWIN bcc requires -o option to compile an .o file otherwise it ends up as .exe and cannot link 80d485b (origin/master, origin/HEAD) Add stdint.h header to recognize some C99 types 29dbfca libc/msdos: program name missing in argv[0] b0e9b25 libc/msdos: __mkargv es register changed 4a350d3 ar: rename of temporary libary fails on some platforms cf72284 copt: fix a minor glitch in copt/rules.86 ce888f6 Allow copt rules with empty outputs; fix minor glitch in copt/rules.86 4ed1997 bcc/dbprintf.c: ix implicit declaration warnings 9de6f00 Make a.out.h portable to 64 bit systems 7eae1c0 Change strstr() to Jody's two-way implementation 2f53e83 Add a .gitignore file c21e14a initial version with minimal routines fa9c32e Add stdint.h header to recognize some C99 types 6e8432b Minor style cleanups b7a191c Add "make distclean" and make it really clean everything dab04fb bootblocks: long -> int32_t for proper building on 64-bit hosts 0d9ee41 bootblocks requires as86_encap to build Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* as mentioned in: lkundrak/dev86#17 the original lkundrak repo is no longer maintained * pass only BASE_PV as VERSION in EXTRA_OEMAKE to prevent: | version.h:4:20: error: ‘gitAUTOINC’ undeclared (first use in this function) | #define VER_PAT 21+gitAUTOINC+e254e0b196 | ^ * there are many new commits, we need at least that fix for newer gperf git log --oneline v0.16.21..jbruchon/master e254e0b (jbruchon/master) Merge pull request #21 from tkchia/master 3473bde [libc] update _signal syscall semantics, per ABI change in ELKS at ghaerr/elks#629 d74e90d Merge pull request #20 from tkchia/tkchia/update-syscalls 541a8d5 [libc] update syscall list & ino_t type, per ELKS tree 710e852 Merge pull request #16 from spacerace/master b215454 Merge pull request #17 from mfld-fr/master 870635e Move EMU86 & MON86 to standalone projects 84e3d00 [mon86] Latest touch before moving c2f288c [emu86] Latest touch before moving f7449f3 libc tests for MSDOS target (far away from complete ;)) 6cbd64d fixing problem in string.h introduced by myself -.- 39e04cd Merge branch 'master' of https://github.com/spacerace/dev86 b44e43d Added OpenBSD's timingsafe_bcmp() and timingsafe_memcmp() 857c30e Added BSD's strlcat() and strlcpy(), safe string copy/cat 0764e09 typo in string.h 2fb6a3a swab() 4e09d08 strupr() 2bd985f strset() 5a7bb33 strrev() 56be26a strnset() c919b2d strlwr() b63f295 h+Mf bzero() strnset() strset() strlwr() strupr() strrev() swab() 5985246 removed old implementation of strstr. if anyone needs this file => remains in git history 7b481c0 added bzero() 776929c Merge pull request #15 from spacerace/master 8206ed2 stdlib.h + Makefile changes for getenv() and system() b995d1e getenv() implementation 60466fe system() implementation 12439ac note on __mkenv (related to getenv commits from me) aae041a removed empty line on top of file 6d6d91f removed uneeded empty file (see sound.c) ff7d37e formatting (tabs) 246418a formatting in one line fixed 4ff1f48 Merge pull request #14 from mfld-fr/emu86 1b8f8db Add data & suspicious opcode breakpoints 798c4a2 Merge pull request #13 from rdebath/jbruchon 2eb4d82 Add .travis.yml for running "make distribution" tests. 2ea54e1 Merge pull request #12 from mgorny/makez f14f78e build: Always use $(MAKE) to spawn sub-make dfb9b42 Merge pull request #11 from mfld-fr/emu86 6ae2b54 Make dev86 working "in tree" 224843f Merge pull request lgirdk#10 from mfld-fr/emu86 e56a958 [emu86] Test against ELKS - Round 3 0099ec8 Merge pull request lgirdk#9 from mfld-fr/emu86 32865c8 [emu86] Test against ELKS - Round 2 e1aa9bd Merge pull request lgirdk#8 from mfld-fr/emu86 c7ebb2a [emu86] Optimize execution lookup 57019a7 [emu86] Complete decoding optimization de516a5 [emu86] Fix mfld-fr#21 : opcode 90h (NOP) 40f7c99 [emu86] Optimize decoding < C0h 91d4c61 [emu86] Fix mfld-fr#16 : add pcat timing options d519caf [emu86] Fix mfld-fr#14 : trace support 3a479e7 [emu86] Check vector before interrupt 7eec401 Optimize decoding < 80h 98334d3 Fix mfld-fr#8 and warning cleanup 0579c82 Merge pull request lgirdk#7 from mfld-fr/master 49492b9 [emu86] Add option for tiny model da6a960 [emu86] fix #19 : remove PT1 test e3b465f [dis88] Move back from ELKS f2ea895 Merge pull request lgirdk#6 from mfld-fr/master b0700f4 [mon86] First stage removal after second validated 6ef705d [mon86] Fix #18 : Complete host tool 1fa5a70 Fix lgirdk#10 and #11 : Target specific code 22c7770 Merge branch 'bug86' e25c996 [mon86] Tune host tool for read & write 47aadb5 [mon86] Fix #15 : Cleanup in host tool ae7c628 [mon86] Makefile for host part + more testing ae6c84a [mon86] New host tool + fix context parsing c9205ac Add missing void types to libc/misc/qsort.c 7a4f074 unproto: fix macOS Sierra compilation error reported by scontini76 ac6d924 unproto: better CFLAGS f86ad57 bcc: if EOF is hit before end of comment, report it as an error fcdbcd7 limits.h: add PATH_MAX 7239fea include: Add a skeleton for inttypes.h f3e88f9 Remove accidental ignoring of "include" 0ac417a Merge branch 'master' of https://github.com/jbruchon/dev86 74753fa Fix size_t declaration, add ssize_t declaration 4be53b7 Merge pull request lgirdk#5 from mfld-fr/master d5ecd9c [mon86] Second stage tested on real SBC 81b0ab2 [mon86] Second stage monitor completed b55cbbc [mon86] Trace & break interrupt support 18a5ba8 Merge pull request lgirdk#4 from mfld-fr/master 77f028b [mon86] First stage monitor completed 07689d4 Merge remote-tracking branch 'upstream/master' e043007 Revert accidental bcc changes in commit 3c83dee 495b99a [emu86] Test against ELKS - Round 1 5508efa Merge pull request lgirdk#3 from mfld-fr/master 8aa3313 [emu86] Testing against a real ROM - Round 1 d8ac93e [emu86] Fixed lgirdk#7 : segment selection & override 5b521d6 [emu86] Test against a real POST - Round 2 3c83dee [emu86] Test against a real POST - Round 1 b45a3d2 [emu86] Command line options 345513c [emu86] Fixed lgirdk#6 : simplified variable size 2d7d316 [emu86] Fixed lgirdk#2 + FAR call & ret 8ac48bf Import MON86 standalone project needed by EMU86 1da15c0 Bug fixes after EMU86 testing 1dc5fd3 Merge pull request lgirdk#2 from mfld-fr/master 24935c0 [emu86] Final touch before the weekend 9090120 [emu86] Fixed lgirdk#5 : redirect serial I/O to PTS 96dfb1a [emu86] Added memory and stack dumps 4fbcead [emu86] Fixed lgirdk#1 : move reg num out of val struct 205e47d Improved EMU86 for MON86 testing 377ed40 Merge branch 'master' into emu86 fd3cf7e Added partial ZF and CF flags support c758426 Merge pull request lgirdk#1 from mfld-fr/master 72ad336 Merge branch 'master' of git://github.com/jbruchon/dev86 into emu86 2d8398b More support of 8086 instruction set b2eadba EMU86 second draft 9a8e116 EMU86 first draft fb3b436 Revert "fix linker alignment for .bss segment" bf19066 Merge https://github.com/anchorz/dev86-1 4e8476e Revert "copt: fix a minor glitch in copt/rules.86" 1bcc185 Merge remote-tracking branch 'upstream/master' b0426b2 Force output of initial segment directive a44b267 fix linker alignment for .bss segment c0832c8 under CYGWIN bcc requires -o option to compile an .o file otherwise it ends up as .exe and cannot link 80d485b (origin/master, origin/HEAD) Add stdint.h header to recognize some C99 types 29dbfca libc/msdos: program name missing in argv[0] b0e9b25 libc/msdos: __mkargv es register changed 4a350d3 ar: rename of temporary libary fails on some platforms cf72284 copt: fix a minor glitch in copt/rules.86 ce888f6 Allow copt rules with empty outputs; fix minor glitch in copt/rules.86 4ed1997 bcc/dbprintf.c: ix implicit declaration warnings 9de6f00 Make a.out.h portable to 64 bit systems 7eae1c0 Change strstr() to Jody's two-way implementation 2f53e83 Add a .gitignore file c21e14a initial version with minimal routines fa9c32e Add stdint.h header to recognize some C99 types 6e8432b Minor style cleanups b7a191c Add "make distclean" and make it really clean everything dab04fb bootblocks: long -> int32_t for proper building on 64-bit hosts 0d9ee41 bootblocks requires as86_encap to build Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
* as mentioned in: lkundrak/dev86#17 the original lkundrak repo is no longer maintained * pass only BASE_PV as VERSION in EXTRA_OEMAKE to prevent: | version.h:4:20: error: ‘gitAUTOINC’ undeclared (first use in this function) | #define VER_PAT 21+gitAUTOINC+e254e0b196 | ^ * there are many new commits, we need at least that fix for newer gperf git log --oneline v0.16.21..jbruchon/master e254e0b (jbruchon/master) Merge pull request #21 from tkchia/master 3473bde [libc] update _signal syscall semantics, per ABI change in ELKS at ghaerr/elks#629 d74e90d Merge pull request #20 from tkchia/tkchia/update-syscalls 541a8d5 [libc] update syscall list & ino_t type, per ELKS tree 710e852 Merge pull request #16 from spacerace/master b215454 Merge pull request #17 from mfld-fr/master 870635e Move EMU86 & MON86 to standalone projects 84e3d00 [mon86] Latest touch before moving c2f288c [emu86] Latest touch before moving f7449f3 libc tests for MSDOS target (far away from complete ;)) 6cbd64d fixing problem in string.h introduced by myself -.- 39e04cd Merge branch 'master' of https://github.com/spacerace/dev86 b44e43d Added OpenBSD's timingsafe_bcmp() and timingsafe_memcmp() 857c30e Added BSD's strlcat() and strlcpy(), safe string copy/cat 0764e09 typo in string.h 2fb6a3a swab() 4e09d08 strupr() 2bd985f strset() 5a7bb33 strrev() 56be26a strnset() c919b2d strlwr() b63f295 h+Mf bzero() strnset() strset() strlwr() strupr() strrev() swab() 5985246 removed old implementation of strstr. if anyone needs this file => remains in git history 7b481c0 added bzero() 776929c Merge pull request #15 from spacerace/master 8206ed2 stdlib.h + Makefile changes for getenv() and system() b995d1e getenv() implementation 60466fe system() implementation 12439ac note on __mkenv (related to getenv commits from me) aae041a removed empty line on top of file 6d6d91f removed uneeded empty file (see sound.c) ff7d37e formatting (tabs) 246418a formatting in one line fixed 4ff1f48 Merge pull request #14 from mfld-fr/emu86 1b8f8db Add data & suspicious opcode breakpoints 798c4a2 Merge pull request #13 from rdebath/jbruchon 2eb4d82 Add .travis.yml for running "make distribution" tests. 2ea54e1 Merge pull request #12 from mgorny/makez f14f78e build: Always use $(MAKE) to spawn sub-make dfb9b42 Merge pull request #11 from mfld-fr/emu86 6ae2b54 Make dev86 working "in tree" 224843f Merge pull request #10 from mfld-fr/emu86 e56a958 [emu86] Test against ELKS - Round 3 0099ec8 Merge pull request #9 from mfld-fr/emu86 32865c8 [emu86] Test against ELKS - Round 2 e1aa9bd Merge pull request #8 from mfld-fr/emu86 c7ebb2a [emu86] Optimize execution lookup 57019a7 [emu86] Complete decoding optimization de516a5 [emu86] Fix mfld-fr#21 : opcode 90h (NOP) 40f7c99 [emu86] Optimize decoding < C0h 91d4c61 [emu86] Fix mfld-fr#16 : add pcat timing options d519caf [emu86] Fix mfld-fr#14 : trace support 3a479e7 [emu86] Check vector before interrupt 7eec401 Optimize decoding < 80h 98334d3 Fix mfld-fr#8 and warning cleanup 0579c82 Merge pull request #7 from mfld-fr/master 49492b9 [emu86] Add option for tiny model da6a960 [emu86] fix #19 : remove PT1 test e3b465f [dis88] Move back from ELKS f2ea895 Merge pull request #6 from mfld-fr/master b0700f4 [mon86] First stage removal after second validated 6ef705d [mon86] Fix #18 : Complete host tool 1fa5a70 Fix #10 and #11 : Target specific code 22c7770 Merge branch 'bug86' e25c996 [mon86] Tune host tool for read & write 47aadb5 [mon86] Fix #15 : Cleanup in host tool ae7c628 [mon86] Makefile for host part + more testing ae6c84a [mon86] New host tool + fix context parsing c9205ac Add missing void types to libc/misc/qsort.c 7a4f074 unproto: fix macOS Sierra compilation error reported by scontini76 ac6d924 unproto: better CFLAGS f86ad57 bcc: if EOF is hit before end of comment, report it as an error fcdbcd7 limits.h: add PATH_MAX 7239fea include: Add a skeleton for inttypes.h f3e88f9 Remove accidental ignoring of "include" 0ac417a Merge branch 'master' of https://github.com/jbruchon/dev86 74753fa Fix size_t declaration, add ssize_t declaration 4be53b7 Merge pull request #5 from mfld-fr/master d5ecd9c [mon86] Second stage tested on real SBC 81b0ab2 [mon86] Second stage monitor completed b55cbbc [mon86] Trace & break interrupt support 18a5ba8 Merge pull request #4 from mfld-fr/master 77f028b [mon86] First stage monitor completed 07689d4 Merge remote-tracking branch 'upstream/master' e043007 Revert accidental bcc changes in commit 3c83dee 495b99a [emu86] Test against ELKS - Round 1 5508efa Merge pull request #3 from mfld-fr/master 8aa3313 [emu86] Testing against a real ROM - Round 1 d8ac93e [emu86] Fixed #7 : segment selection & override 5b521d6 [emu86] Test against a real POST - Round 2 3c83dee [emu86] Test against a real POST - Round 1 b45a3d2 [emu86] Command line options 345513c [emu86] Fixed #6 : simplified variable size 2d7d316 [emu86] Fixed #2 + FAR call & ret 8ac48bf Import MON86 standalone project needed by EMU86 1da15c0 Bug fixes after EMU86 testing 1dc5fd3 Merge pull request #2 from mfld-fr/master 24935c0 [emu86] Final touch before the weekend 9090120 [emu86] Fixed #5 : redirect serial I/O to PTS 96dfb1a [emu86] Added memory and stack dumps 4fbcead [emu86] Fixed #1 : move reg num out of val struct 205e47d Improved EMU86 for MON86 testing 377ed40 Merge branch 'master' into emu86 fd3cf7e Added partial ZF and CF flags support c758426 Merge pull request #1 from mfld-fr/master 72ad336 Merge branch 'master' of git://github.com/jbruchon/dev86 into emu86 2d8398b More support of 8086 instruction set b2eadba EMU86 second draft 9a8e116 EMU86 first draft fb3b436 Revert "fix linker alignment for .bss segment" bf19066 Merge https://github.com/anchorz/dev86-1 4e8476e Revert "copt: fix a minor glitch in copt/rules.86" 1bcc185 Merge remote-tracking branch 'upstream/master' b0426b2 Force output of initial segment directive a44b267 fix linker alignment for .bss segment c0832c8 under CYGWIN bcc requires -o option to compile an .o file otherwise it ends up as .exe and cannot link 80d485b (origin/master, origin/HEAD) Add stdint.h header to recognize some C99 types 29dbfca libc/msdos: program name missing in argv[0] b0e9b25 libc/msdos: __mkargv es register changed 4a350d3 ar: rename of temporary libary fails on some platforms cf72284 copt: fix a minor glitch in copt/rules.86 ce888f6 Allow copt rules with empty outputs; fix minor glitch in copt/rules.86 4ed1997 bcc/dbprintf.c: ix implicit declaration warnings 9de6f00 Make a.out.h portable to 64 bit systems 7eae1c0 Change strstr() to Jody's two-way implementation 2f53e83 Add a .gitignore file c21e14a initial version with minimal routines fa9c32e Add stdint.h header to recognize some C99 types 6e8432b Minor style cleanups b7a191c Add "make distclean" and make it really clean everything dab04fb bootblocks: long -> int32_t for proper building on 64-bit hosts 0d9ee41 bootblocks requires as86_encap to build Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This is in preparation for adding support for "medium" memory model (far code + near data) programs to ELKS (see https://github.com/tkchia/build-ia16/issues/14).
Currently the kernel assumes that, when a user process handles an asynchronous signal, the signal handler can simply return to a near (16-bit) address. But this may not be true once ELKS allows a user process to run code in a far text segment.
This patch changes the semantics of the
_signal
syscall so that it accepts a far (32-bit) signal handler pointer which returns to a far address.To save data space, I also changed the kernel's internal signal handling structures.