Menu

Can't get Bochs source to compile (MWAH!!)

Help
2004-11-23
2012-10-15
  • Kevin Grant

    Kevin Grant - 2004-11-23

    PLEASE help - Im going outta my mind! I have tried for 48 hours to get the bochs source to compile. Im running win2k on a decent machine, have tried using every c++ compiler available to me and am having no success.

    I've got DJGPP, Cygwin, I've even tried putting the redhat image on and compiling it under bochs! (well that was the plan - but i cant find the right CHS values for the imagefile), the dlxlinux image has no cc, nor can I get gcc running right (on win32, aix, irix, solaris...) . Forget Borland C++ Builder 4 Std/ Pro, they've been no use. NB I dont have / use any compiler that you have to buy, either. (Borland is free on cover disks!)

    I tried cygwin as suggested in the documentation, but I keep getting "C Compiler cant create executables" errors, see the config.log for details... even though I forced it to use gcc instead of cc.

    <sigh>

    My final solution is to use DEV-C++ (kinda like HoTMetaL, but for C++, cool!) , which recognises all the files in my source folder from the CVS tarball. (ZIP). Compile starts, but baulks on gdbstub.cpp about #include <sys/socket.h> with the explanation that it "cant find file or folder" (and a few million other similar error messages - see below)

    The program is aware of both its own include folder and c:\djgpp\include which contains djgpp\include\sys but on closer inspection, neither my BOCHS or GCC / DJGPP zips come with the offending missing file(s), sys\socket.h, netinet/tcp.h, arpa/inet.h etc....

    Q: If these files don't come with either bochs or with my C++ compiler, where the heck do they come from??

    FWIW Compiler output follows:

    Compiler: Default compiler
    Building Makefile: "C:\box\bochs-20041110\Makefile.win"
    Executing make...
    make.exe -f "C:\box\bochs-20041110\Makefile.win" all
    g++.exe -c ../../bochs211/gdbstub.cpp -o ../../bochs211/gdbstub.o -I"C:/Dev-Cpp/include/c++/3.3.1" -I"C:/Dev-Cpp/include/c++/3.3.1/mingw32" -I"C:/Dev-Cpp/include/c++/3.3.1/backward" -I"C:/Dev-Cpp/lib/gcc-lib/mingw32/3.3.1/include" -I"C:/Dev-Cpp/include" -I"C:/djgpp/include"

    ../../bochs211/gdbstub.cpp:4:24: sys/socket.h: No such file or directory
    ../../bochs211/gdbstub.cpp:6:25: netinet/tcp.h: No such file or directory
    ../../bochs211/gdbstub.cpp:7:23: arpa/inet.h: No such file or directory
    ../../bochs211/gdbstub.cpp:9:19: netdb.h: No such file or directory
    In file included from ../../bochs211/bochs.h:91,
    from ../../bochs211/gdbstub.cpp:13:
    ../../bochs211/bx_debug/debug.h:29:20: config.h: No such file or directory
    ../../bochs211/bx_debug/debug.h:30:19: osdep.h: No such file or directory
    In file included from ../../bochs211/bochs.h:402,
    from ../../bochs211/gdbstub.cpp:13:
    ../../bochs211/cpu/cpu.h:33:28: cpu/lazy_flags.h: No such file or directory
    ../../bochs211/cpu/cpu.h:1172:22: cpu/apic.h: No such file or directory
    ../../bochs211/cpu/cpu.h:1177:22: cpu/i387.h: No such file or directory
    ../../bochs211/cpu/cpu.h:1180:21: cpu/xmm.h: No such file or directory
    In file included from ../../bochs211/bochs.h:402,
    from ../../bochs211/gdbstub.cpp:13:
    ../../bochs211/cpu/cpu.h:1236: error: 'bx_lf_flags_entry' is used as a type,
    but is not defined as a type.

    ../../bochs211/cpu/cpu.h:1237: error: 'bx_lf_flags_entry' is used as a type,
    but is not defined as a type.

    ../../bochs211/cpu/cpu.h:1296: error: 'i387_t' is used as a type, but is not
    defined as a type.

    ../../bochs211/cpu/cpu.h: In static member function `static bx_bool
    bx_cpu_c::getB_OF()':

    ../../bochs211/cpu/cpu.h:1461: error: `BX_LF_INDEX_KNOWN' undeclared (first use
    this function)

    ../../bochs211/cpu/cpu.h:1461: error: (Each undeclared identifier is reported

    only once for each function it appears in.)

    In file included from ../../bochs211/bochs.h:504,
    from ../../bochs211/gdbstub.cpp:13:
    ../../bochs211/iodev/iodev.h:394:23: iodev/vga.h: No such file or directory
    ../../bochs211/iodev/iodev.h:398:27: iodev/biosdev.h: No such file or directory
    ../../bochs211/iodev/iodev.h:399:24: iodev/cmos.h: No such file or directory
    ../../bochs211/iodev/iodev.h:400:23: iodev/dma.h: No such file or directory
    ../../bochs211/iodev/iodev.h:401:26: iodev/floppy.h: No such file or directory
    ../../bochs211/iodev/iodev.h:402:27: iodev/harddrv.h: No such file or directory
    ../../bochs211/iodev/iodev.h:403:27: iodev/vmware3.h: No such file or directory
    ../../bochs211/iodev/iodev.h:407:28: iodev/keyboard.h: No such file or directory
    ../../bochs211/iodev/iodev.h:408:28: iodev/parallel.h: No such file or directory
    ../../bochs211/iodev/iodev.h:409:23: iodev/pic.h: No such file or directory
    ../../bochs211/iodev/iodev.h:410:23: iodev/pit.h: No such file or directory
    ../../bochs211/iodev/iodev.h:411:28: iodev/pit_wrap.h: No such file or directory
    ../../bochs211/iodev/iodev.h:412:30: iodev/virt_timer.h: No such file or directory
    ../../bochs211/iodev/iodev.h:413:26: iodev/serial.h: No such file or directory
    ../../bochs211/iodev/iodev.h:415:26: iodev/sb16.h: No such file or directory
    ../../bochs211/iodev/iodev.h:417:28: iodev/unmapped.h: No such file or directory
    ../../bochs211/iodev/iodev.h:418:23: iodev/eth.h: No such file or directory
    ../../bochs211/iodev/iodev.h:419:24: iodev/ne2k.h: No such file or directory
    ../../bochs211/iodev/iodev.h:420:30: iodev/guest2host.h: No such file or directory
    ../../bochs211/iodev/iodev.h:421:34: iodev/slowdown_timer.h: No such file or directory
    ../../bochs211/iodev/iodev.h:422:29: iodev/extfpuirq.h: No such file or directory
    ../../bochs211/iodev/iodev.h:423:28: iodev/gameport.h: No such file or directory
    In file included from ../../bochs211/gdbstub.cpp:13:
    ../../bochs211/bochs.h:689:24: instrument.h: No such file or directory
    ../../bochs211/gdbstub.cpp: At global scope:

    ../../bochs211/gdbstub.cpp:18: error: `GDBSTUB_STOP_NO_REASON' was not declared
    in this scope

    ../../bochs211/gdbstub.cpp: In function int bx_gdbstub_check(unsigned int)': ../../bochs211/gdbstub.cpp:198: error:F_GETFL' undeclared (first use this
    function)

    ../../bochs211/gdbstub.cpp:198: error: `fcntl' undeclared (first use this
    function)

    ../../bochs211/gdbstub.cpp:199: error: `F_SETFL' undeclared (first use this
    function)

    ../../bochs211/gdbstub.cpp:199: error: `O_NONBLOCK' undeclared (first use this
    function)

    ../../bochs211/gdbstub.cpp:200: error: invalid conversion from unsigned char*' tochar*'

    ../../bochs211/gdbstub.cpp:235: error: `GDBSTUB_STOP_NO_REASON' undeclared
    (first use this function)

    ../../bochs211/gdbstub.cpp: In function int access_linear(unsigned int, unsigned int, unsigned int, Bit8u*)': ../../bochs211/gdbstub.cpp:316: error:dbg_xlate_linear2phy' undeclared (first
    use this function)

    ../../bochs211/gdbstub.cpp: In function void debug_loop()': ../../bochs211/gdbstub.cpp:385: error:SIGTRAP' undeclared (first use this
    function)

    ../../bochs211/gdbstub.cpp: In function void wait_for_connect(int)': ../../bochs211/gdbstub.cpp:620: error:socklen_t' undeclared (first use this
    function)

    ../../bochs211/gdbstub.cpp:620: error: syntax error before `;' token

    ../../bochs211/gdbstub.cpp:634: error: cannot convert int*' toconst char*'

    for argument 4' toint setsockopt(unsigned int, int, int, const char*,
    int)'

    ../../bochs211/gdbstub.cpp:662: error: `sockaddr_len' undeclared (first use
    this function)

    ../../bochs211/gdbstub.cpp:679: error: cannot convert int*' toconst char*'

    for argument 4' toint setsockopt(unsigned int, int, int, const char*,
    int)'

    make.exe: *** [../../bochs211/gdbstub.o] Error 1

    Execution terminated

    Thanks in advance.

     
    • Stanislav Shwartsman

      Looks like you did not run 'configure' script before compiling. Give the exact operations use do.

      Stanislav

       
    • Kevin Grant

      Kevin Grant - 2004-11-23

      Hi

      Believe me I've tried to run configure! Output is nothing like what it says in the Compiling Bochs manual (ch 3)

      I get the "C Compiler cannot produce executables" error (and I havent modified any source code file so if anyone one else can compile the sources (assumed) it must be how my compiler is setup.

      System environment variables are set (DJGPP = C:\DJGPP\DJGPP.ENV), PATH=C:\DJGPP\BIN;%PATH%

      I've run (cygwin) $ sh .conf.win32-cygwin,
      (cygwin) $ ./configure,
      (cygwin) $ make,
      (cygwin) $ make clean,
      (CMD32) c:\bochs211\> make
      etc...

      all to no avail and everything produces errors (cygwin output, and config.log below - sorry I daren't truncate):

      Administrator@ssp-n3031otbjqt /cygdrive/c/bochs211
      $ ./configure
      checking build system type... i686-pc-cygwin
      checking host system type... i686-pc-cygwin
      checking target system type... i686-pc-cygwin
      checking if you are configuring for another platform... no
      checking for standard CFLAGS on this platform... -mno-cygwin -DWIN32
      checking for gcc... gcc
      checking for C compiler default output... configure: error: C compiler cannot cr
      eate executables
      See `config.log' for more details.

      Administrator@ssp-n3031otbjqt /cygdrive/c/bochs211
      $
      =============================
      This file contains any messages produced by compilers while
      running configure, to aid debugging if configure makes a mistake.

      It was created by configure, which was
      generated by GNU Autoconf 2.57. Invocation command line was

      $ ./configure

      ---------

      Platform.

      ---------

      hostname = ssp-n3031otbjqt
      uname -m = i686
      uname -r = 1.5.12(0.116/4/2)
      uname -s = CYGWIN_NT-5.0
      uname -v = 2004-11-10 08:34

      /usr/bin/uname -p = unknown
      /bin/uname -X = unknown

      /bin/arch = unknown
      /usr/bin/arch -k = unknown
      /usr/convex/getsysinfo = unknown
      hostinfo = unknown
      /bin/machine = unknown
      /usr/bin/oslevel = unknown
      /bin/universe = unknown

      PATH: /usr/local/bin
      PATH: /usr/bin
      PATH: /bin
      PATH: /usr/X11R6/bin
      PATH: /cygdrive/c/WINNT/system32
      PATH: /cygdrive/c/WINNT
      PATH: /cygdrive/c/WINNT/system32/WBEM
      PATH: /cygdrive/c/djgpp/bin
      PATH: "C
      PATH: /Program Files/Executive Software/DiskeeperWorkstation/"

      -----------

      Core tests.

      -----------

      configure:1573: checking build system type
      configure:1591: result: i686-pc-cygwin
      configure:1599: checking host system type
      configure:1613: result: i686-pc-cygwin
      configure:1621: checking target system type
      configure:1635: result: i686-pc-cygwin
      configure:1657: checking if you are configuring for another platform
      configure:1660: result: no
      configure:1717: checking for standard CFLAGS on this platform
      configure:1719: result: -mno-cygwin -DWIN32
      configure:1786: checking for gcc
      configure:1802: found /cygdrive/c/djgpp/bin/gcc
      configure:1812: result: gcc
      configure:2056: checking for C compiler version
      configure:2059: gcc --version </dev/null >&5
      gcc.exe (GCC) 3.4.3
      Copyright (C) 2004 Free Software Foundation, Inc.
      This is free software; see the source for copying conditions. There is NO
      warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

      configure:2062: $? = 0
      configure:2064: gcc -v </dev/null >&5
      Reading specs from c:/djgpp/bin/../lib/gcc/djgpp/3.43/specs
      Configured with: /Build/gcc34/gnu/gcc-3.43/configure djgpp --prefix=/dev/env/DJDIR --disable-nls --disable-libstdcxx-pch
      Thread model: single
      gcc version 3.4.3
      configure:2067: $? = 0
      configure:2069: gcc -V </dev/null >&5
      gcc.exe: -V' option must have argument configure:2072: $? = 1 configure:2096: checking for C compiler default output configure:2099: gcc -mno-cygwin -DWIN32 -mno-cygwin -DWIN32 conftest.c &gt;&amp;5 cc1.exe: error: invalid optionno-cygwin'
      cc1.exe: error: invalid option no-cygwin' configure:2102: $? = 1 configure: failed program was: | #line 2075 &quot;configure&quot; | /* confdefs.h. */ | | #define PACKAGE_NAME &quot;&quot; | #define PACKAGE_TARNAME &quot;&quot; | #define PACKAGE_VERSION &quot;&quot; | #define PACKAGE_STRING &quot;&quot; | #define PACKAGE_BUGREPORT &quot;&quot; | /* end confdefs.h. */ | | int | main () | { | | ; | return 0; | } configure:2141: error: C compiler cannot create executables Seeconfig.log' for more details.

      ----------------

      Cache variables.

      ----------------

      ac_cv_build=i686-pc-cygwin
      ac_cv_build_alias=i686-pc-cygwin
      ac_cv_env_CC_set=
      ac_cv_env_CC_value=
      ac_cv_env_CFLAGS_set=
      ac_cv_env_CFLAGS_value=
      ac_cv_env_CPPFLAGS_set=
      ac_cv_env_CPPFLAGS_value=
      ac_cv_env_CPP_set=
      ac_cv_env_CPP_value=
      ac_cv_env_CXXCPP_set=
      ac_cv_env_CXXCPP_value=
      ac_cv_env_CXXFLAGS_set=
      ac_cv_env_CXXFLAGS_value=
      ac_cv_env_CXX_set=
      ac_cv_env_CXX_value=
      ac_cv_env_F77_set=
      ac_cv_env_F77_value=
      ac_cv_env_FFLAGS_set=
      ac_cv_env_FFLAGS_value=
      ac_cv_env_LDFLAGS_set=
      ac_cv_env_LDFLAGS_value=
      ac_cv_env_build_alias_set=
      ac_cv_env_build_alias_value=
      ac_cv_env_host_alias_set=
      ac_cv_env_host_alias_value=
      ac_cv_env_target_alias_set=
      ac_cv_env_target_alias_value=
      ac_cv_host=i686-pc-cygwin
      ac_cv_host_alias=i686-pc-cygwin
      ac_cv_prog_ac_ct_CC=gcc
      ac_cv_target=i686-pc-cygwin
      ac_cv_target_alias=i686-pc-cygwin

      -----------------

      Output variables.

      -----------------

      APIC_OBJS=''
      AR=''
      BUILD_DOCBOOK_VAR=''
      BX_COMPRESSED_HD_SUPPORT=''
      BX_EXTERNAL_DEBUGGER=''
      BX_USE_IDLE_HACK=''
      BX_USE_NEW_PIT=''
      CC='gcc'
      CDROM_OBJS=''
      CD_UP_ONE=''
      CD_UP_TWO=''
      CFLAGS=' -mno-cygwin -DWIN32'
      CFP=''
      COMMAND_SEPARATOR=''
      CPP=''
      CPPFLAGS=' -mno-cygwin -DWIN32'
      CPP_SUFFIX=''
      CXX=''
      CXXCPP=''
      CXXFLAGS=' -mno-cygwin -DWIN32'
      CXXFP=''
      DASH=''
      DEBUGGER_VAR=''
      DEFINE_PLUGIN_PATH=''
      DEFS=''
      DEVICE_LINK_OPTS=''
      DIALOG_OBJS=''
      DISASM_VAR=''
      DOCBOOK2HTML=''
      ECHO='echo'
      ECHO_C=''
      ECHO_N='-n'
      ECHO_T=''
      EGREP=''
      EXE=''
      EXEEXT=''
      EXTERNAL_DEPENDENCY=''
      EXTRA_BX_OBJS=''
      EXTRA_LINK_OPTS=''
      EXT_DEBUG_OBJS=''
      F77=''
      FFLAGS=''
      FPU_GLUE_OBJ=''
      FPU_VAR=''
      GAME_OBJS=''
      GDBSTUB_VAR=''
      GUI_CFLAGS=''
      GUI_CXXFLAGS=''
      GUI_LINK_OPTS=''
      GUI_LINK_OPTS_TERM=''
      GUI_LINK_OPTS_WX=''
      GUI_NON_PLUGIN_OBJS=''
      GUI_OBJS=''
      GUI_PLUGIN_OBJS=''
      GZIP=''
      INLINE_VAR=''
      INSTALL_DOCBOOK_VAR=''
      INSTALL_LIST_FOR_PLATFORM=''
      INSTALL_PLUGINS_VAR=''
      INSTALL_TARGET=''
      INSTRUMENT_DIR=''
      INSTRUMENT_VAR=''
      IOAPIC_OBJS=''
      IODEBUG_OBJS=''
      IODEV_LIB_VAR=''
      IODEV_NON_PLUGIN_OBJS=''
      IODEV_PLUGIN_OBJS=''
      LDFLAGS=''
      LIBADD_DL=''
      LIBOBJS=''
      LIBS=''
      LIBTOOL=''
      LINK=''
      LINK_CONSOLE=''
      LN_S=''
      LTLIBOBJS=''
      MAKELIB=''
      NE2K_OBJS=''
      NETLOW_OBJS=''
      NONINLINE_VAR=''
      NONPLUGIN_GUI_LINK_OPTS=''
      OBJEXT=''
      OBJS64=''
      OFP=''
      PACKAGE_BUGREPORT=''
      PACKAGE_NAME=''
      PACKAGE_STRING=''
      PACKAGE_TARNAME=''
      PACKAGE_VERSION=''
      PATH_SEPARATOR=':'
      PCI_OBJ=''
      PLUGIN_LIBNAME_TRANSFORMATION=''
      PLUGIN_TARGET=''
      PLUGIN_VAR=''
      PRIMARY_TARGET=''
      PTHREAD_CC=''
      PTHREAD_CFLAGS=''
      PTHREAD_LIBS=''
      RANLIB=''
      RC_CMD=''
      READLINE_LIB=''
      REL_STRING='February 08, 2004'
      RFB_LIBS=''
      RMCOMMAND=''
      SB16_OBJS=''
      SET_MAKE=''
      SHELL='/bin/bash'
      SLASH=''
      SOUNDLOW_OBJS=''
      STRIP=''
      SUFFIX_LINE=''
      TAR=''
      VERSION='2.1.1'
      VER_STRING='2.1.1'
      WX_CFLAGS=''
      WX_CONFIG=''
      WX_CXXFLAGS=''
      XPM_LIB=''
      X_CFLAGS=''
      X_EXTRA_LIBS=''
      X_LIBS=''
      X_PRE_LIBS=''
      ac_ct_AR=''
      ac_ct_CC='gcc'
      ac_ct_CXX=''
      ac_ct_F77=''
      ac_ct_RANLIB=''
      ac_ct_STRIP=''
      bindir='${exec_prefix}/bin'
      build='i686-pc-cygwin'
      build_alias=''
      build_cpu='i686'
      build_os='cygwin'
      build_vendor='pc'
      datadir='${prefix}/share'
      exec_prefix='NONE'
      host='i686-pc-cygwin'
      host_alias=''
      host_cpu='i686'
      host_os='cygwin'
      host_vendor='pc'
      includedir='${prefix}/include'
      infodir='${prefix}/info'
      libdir='${exec_prefix}/lib'
      libexecdir='${exec_prefix}/libexec'
      localstatedir='${prefix}/var'
      mandir='${prefix}/man'
      oldincludedir='/usr/include'
      prefix='NONE'
      program_transform_name='s,x,x,'
      sbindir='${exec_prefix}/sbin'
      sharedstatedir='${prefix}/com'
      sysconfdir='${prefix}/etc'
      target='i686-pc-cygwin'
      target_alias=''
      target_cpu='i686'
      target_os='cygwin'
      target_vendor='pc'

      -----------

      confdefs.h.

      -----------

      define PACKAGE_BUGREPORT ""

      define PACKAGE_NAME ""

      define PACKAGE_STRING ""

      define PACKAGE_TARNAME ""

      define PACKAGE_VERSION ""

      configure: exit 77

       
    • Stanislav Shwartsman

      I see at least 3 problems:

      1. Your compiler give you an error during the configure
        cc1.exe: error: invalid option `no-cygwin'
        I don't know which compiler you use, the g++ from cygwin package work perfect and successfully recognizes this option. I use g++ 3.3.3 from cygwin for Bochs and never had a problems.

      2. Look on the command line for gdbstub.cpp
        g++.exe -c ../../bochs211/gdbstub.cpp -o ../../bochs211/gdbstub.o -I"C:/Dev-Cpp/include/c++/3.3.1" -I"C:/Dev-Cpp/include/c++/3.3.1/mingw32" -I"C:/Dev-Cpp/include/c++/3.3.1/backward" -I"C:/Dev-Cpp/lib/gcc-lib/mingw32/3.3.1/include" -I"C:/Dev-Cpp/include" -I"C:/djgpp/include"
        It includes anything you want but not Bochs's includes. This could be explained only if did not run configure or the configure script failed.

      3. You are compiling gdbstub. It is compiled ONLY if you requested it in 'configure' script parameter. You not tell me how do you run the 'configure' script so I don't know if you requested to enable gdbstub. But it looks like another prove that 'configure' is failed for you.

      Stanislav

       
    • Kevin Grant

      Kevin Grant - 2004-11-24

      A: Pilot error! (Lack of sleep/caffeine* delete as appropriate...)

      I'd rushed to get cygwin, and failed to notice that the default install skipped the development packages, especially the binutils (including the cygwin version of gcc, g++ etc)

      What resulted was that Cygwin crossed over to ussing DJGPP, and although the configure script did run eventually with a few modifications to the ./configure script, I dont recommend bothering as the ./make command failed with errors.

      Better solution: Go back and get all the necessary cygwin (development, at least) packages, (forget DJGPP) by clicking on 'default' during setup and wait till it says 'install'... Once it's completed d/l & installing, run the original script in cygwin as

      $ sh .conf.win32-cygwin

      which calls ./configure, which finds /usr/bin/gcc and /usr/bin/g++ and completes first time. Make is now whirring away - Yippee! One fully functional bochs.exe produced, and a few others.

      PS Thanks ppl for help and suggestions

      =)

       
    • Dr Frankenstein

      Dr Frankenstein - 2004-12-01

      Dev-c++ fails for me too.

      nb.: I'm very beginner in c++, and the only thing I did is to click on "compile".

       

Log in to post a comment.

MongoDB Logo MongoDB