Menu

#183 bcc fails to compile C code with ANSI prototypes

open
nobody
None
5
2017-04-06
2017-03-29
No

Bcc fails to compile C file with ANSI-style function prototypes even with the -ansi flag, just printing an "Unable to execute unproto.exe" error.

With old-style K&R prototypes instead of ANSI prototypes (and without the -ansi flag) it works well though.

The Debian package for bcc includes /usr/lib/bcc/unproto. I guess the corresponding unproto.exe for dos is needed for the FreeDOS package as well.

Discussion

  • Anthony Williams

    You didn't specify which version you're trying to use. Anyways, BCC/Dev86 is not well-supported at all anymore (AFAIK), certainly not by FreeDOS.

    Somebody (Mateusz?) must've made a "package" for this, and I don't remember if he explained his reasoning. Probably he preferred the "old" (16-bit hosted) version.

    Here's the one that I can find publicly, which is what I assume you're using:

    http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/pkg-html/bcc.html

    I did lightly dabble with this a few years ago. I built my own unproto.com (with itself). The compiler isn't horribly broken: it mostly works, but it's still fairly weak. There are several much better C compilers for DOS that also support more memory models (beyond Tiny and Small).

    https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/devel/c/bcc/old/16bit/unproto.zip

    0.16.2 was the 16-bit DOS-hosted version (aka, old). I did recompile a newer version (0.16.17?) with DJGPP (32-bit), and one other guy (Khusraw) recompiled it in a slightly better way.

    So you can try a newer (386+) compile, but don't get your hopes up too high.

    https://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/devel/c/bcc/

     
  • Pelle Nilsson

    Pelle Nilsson - 2017-04-06

    Yes, it was the version included on the FreeDOS 1.2 cd. Can't believe I forgot to mention what version I was referring to.

    I used bcc a couple of years ago because it was a simple way to cross-compile from Linux and OSX to 16-bit DOS and run in Dosbox to play with. And now that I have installed FreeDOS on real hardware I thought it would be fun to compile the same code there.

    It seems to me like unproto is a pretty important part of bcc, so if bcc is packaged and included with FreeDOS at all then unproto.exe should be in the package. I rather like the idea of a very small and free 16-bit C-compiler that runs on many platforms including DOS itself, so I hope it stays around and that the package is fixed.

    Thanks for the links!

     
    • Anthony Williams

      The FD package has been updated.

      However, Dev86 is not well-supported anymore. Even de Bath just points to lkundrak's Github for newer releases (0.16.21 from 2014). I seriously doubt it properly supports 16-bit DOS host anymore. The updated FD package is still using de Bath's old 2002 (0.16.10) 16-bit compile. Even he didn't compile unproto, so I had to do it manually, hoping that it works better than nothing. There is no copt available.

      If you just want to cross-compile (although I recommend against DOSBox, which is only for games), there are several solutions: andrewwutw's build-djgpp, alexfru's SmallerC, or even OpenWatcom (which has had a Linux hosted version for many years).

      All of these alternatives are better than Dev86. And there are still others of varying quality too. Not everything will be made a FD package, and just having a package doesn't imply quality or active maintenance.

       

Log in to post a comment.