• PRG33 - EMX vs. Innotek GCC: differences in build environment

    From FAQServer@2:5020/181 to All on Wed Sep 11 07:37:04 2024
    [Q]: EMX vs. Innotek GCC: differences in build environment

    [A]: Dave Webster (Dave.Webster@bhmi.com)

    Here is what Innotek gcc 3.2.2 Beta 4 defines by default

    __32BIT__
    __EMX__
    __OS2__
    __i386__
    __i386
    unix
    __MT__
    __INNOTEK_LIBC=0x005

    And -Asystem of unix, posix and emx


    So the main way to differentiate between regular EMX and INNOTEK is checking for __INNOTEK_LIBC__. Straight EMX will not have that defined. In general anything that applies to EMX also applies to INNOTEK, but INNOTEK may have
    some requirements specific to it in addition to those for EMX.

    The main difference I have found between the latest pure EMX distribution,
    gcc 3.2.1 from Hobbes and Innotek gcc 3.2.2 Beta 3 and 4 is in the default stdc++ library. EMX still defaults to -lstdcxx and uses classic iostream.h
    and such while Innotek defaults to the current std lib stuff (iostream) and -lstdc++ and lsupc++. Also you should use g++ under Innotek for c++ and gcc only for straight "c" code. Basically, Innotek is almost exactly like using gcc for Linux, which is why running configure in wxWindows tends to produce
    a Makefile identical to the gtk Makefile rather than EMX Makefile. With
    beta 4 Innotek finally has defined -shared (along with some other OS/2 dll specific switches as outlined in the release notes).

    --- INN 2.7.2
    * Origin: This echo is READ-ONLY. Send %HELP to FAQSERVER at (2:5020/181)
  • From FAQServer@2:5020/181 to All on Mon Dec 16 07:37:08 2024
    [Q]: EMX vs. Innotek GCC: differences in build environment

    [A]: Dave Webster (Dave.Webster@bhmi.com)

    Here is what Innotek gcc 3.2.2 Beta 4 defines by default

    __32BIT__
    __EMX__
    __OS2__
    __i386__
    __i386
    unix
    __MT__
    __INNOTEK_LIBC=0x005

    And -Asystem of unix, posix and emx


    So the main way to differentiate between regular EMX and INNOTEK is checking for __INNOTEK_LIBC__. Straight EMX will not have that defined. In general anything that applies to EMX also applies to INNOTEK, but INNOTEK may have
    some requirements specific to it in addition to those for EMX.

    The main difference I have found between the latest pure EMX distribution,
    gcc 3.2.1 from Hobbes and Innotek gcc 3.2.2 Beta 3 and 4 is in the default stdc++ library. EMX still defaults to -lstdcxx and uses classic iostream.h
    and such while Innotek defaults to the current std lib stuff (iostream) and -lstdc++ and lsupc++. Also you should use g++ under Innotek for c++ and gcc only for straight "c" code. Basically, Innotek is almost exactly like using gcc for Linux, which is why running configure in wxWindows tends to produce
    a Makefile identical to the gtk Makefile rather than EMX Makefile. With
    beta 4 Innotek finally has defined -shared (along with some other OS/2 dll specific switches as outlined in the release notes).

    --- INN 2.7.3 (20241006 prerelease)
    * Origin: This echo is READ-ONLY. Send %HELP to FAQSERVER at (2:5020/181)