\unnumbchapentry{DJGPP FAQ List}{1} \chapentry{If You Are In a Hurry}{1}{3} \chapentry{What is DJGPP?}{2}{7} \chapentry{Hardware and Software Requirements}{3}{9} \secentry{The minimum system requirements for using DJGPP}{3}{1}{9} \secentry{Does it really work under OS/2?}{3}{2}{9} \secentry{Will DJGPP work on Windows/NT?}{3}{3}{10} \secentry{Can it run under Linux?}{3}{4}{13} \secentry{Can I run it on a 286?}{3}{5}{14} \secentry{MS-Windows applications and DJGPP}{3}{6}{14} \secentry{Machine you \emph {would like} to buy\dots {}}{3}{7}{18} \secentry{Machine most of us will \emph {actually} buy \dots {}}{3}{8}{18} \secentry{How to configure your system for DJGPP}{3}{9}{19} \secentry{How to get the most RAM for DJGPP programs?}{3}{10}{21} \chapentry{Where and What to Download?}{4}{23} \secentry{Where can DJGPP be found?}{4}{1}{23} \secentry{How do I download DJGPP?}{4}{2}{27} \secentry{What if I don't know what \samp {FTP} is?}{4}{3}{27} \secentry{What Files to Download?}{4}{4}{28} \secentry{How much disk space will I need?}{4}{5}{34} \secentry{Can I get away with less megabytes?}{4}{6}{35} \secentry{How to uninstall a DJGPP package.}{4}{7}{35} \chapentry{The DJGPP Documentation}{5}{37} \secentry{Where are the documentation files?}{5}{1}{37} \secentry{How to read the docs without \samp {Info?}}{5}{2}{37} \secentry{How to print the docs?}{5}{3}{38} \secentry{Some docs are nowhere to be found\dots {}}{5}{4}{39} \secentry{What are these \file {foo.1} files?}{5}{5}{40} \secentry{What if the docs don't say enough?}{5}{6}{41} \chapentry{When the Compiler (or \samp {Make}, or \samp {Info}, or \dots {}) Crashes\dots {}}{6}{43} \secentry{GCC or some other DJGPP programs hang}{6}{1}{43} \secentry{GCC says ``No DPMI''}{6}{2}{43} \secentry{Buggy DPMI host or junk in DJGPP.ENV can crash v2.x programs}{6}{3}{44} \secentry{GCC can crash during optimization}{6}{4}{44} \secentry{Why does GCC say ``cannot exec \code {as}''?}{6}{5}{46} \secentry{What does ``Internal compiler error'' mean?}{6}{6}{46} \secentry{What does ``Unknown filetype'' mean?}{6}{7}{49} \secentry{Compiler hangs, but only when invoked from Make}{6}{8}{49} \secentry{Info doesn't like some files}{6}{9}{50} \secentry{Info Crashes During Startup}{6}{10}{50} \secentry{Why does Bash crash?}{6}{11}{51} \secentry{DJGPP programs crash on a ThinkPad}{6}{12}{51} \secentry{Why does the Linker Access my CD Drive or the network?}{6}{13}{52} \secentry{Other kinds of trouble}{6}{14}{52} \secentry{I cannot keep up with the error messages}{6}{15}{53} \secentry{How to search DJGPP archives}{6}{16}{54} \secentry{How to ask DJGPP gurus for help}{6}{17}{54} \chapentry{Compiler and Linker Performance}{7}{57} \secentry{Slow Compilation}{7}{1}{57} \secentry{Slow Linking}{7}{2}{58} \chapentry{Compile-time and Link-time Problems}{8}{61} \secentry{GCC doesn't find the source files}{8}{1}{61} \secentry{GCC can't find headers or libraries}{8}{2}{61} \secentry{GCC can't find C\t {++} headers}{8}{3}{64} \secentry{GCC barfs on C\t {++}-style comments in C programs}{8}{4}{66} \secentry{How does GCC recognize the source language?}{8}{5}{67} \secentry{Problems with Objective C}{8}{6}{68} \secentry{Writing codes fragments which are specific to DJGPP}{8}{7}{68} \secentry{Undefined references when linking programs}{8}{8}{69} \secentry{How not to lose your head with all these libraries}{8}{9}{70} \secentry{DJGPP uses a one-pass linker}{8}{10}{71} \secentry{Some functions in C\t {++} programs still not found}{8}{11}{72} \secentry{Unresolved djgpp_first_ctor}{8}{12}{73} \secentry{C\t {++} programs yield large \file {.exe} file}{8}{13}{73} \secentry{Why are DJGPP \file {.exe} files so large?}{8}{14}{73} \secentry{Why don't we use DLLs to make programs smaller?}{8}{15}{75} \secentry{Linker fails to produce the EXE program}{8}{16}{76} \secentry{Building Allegro or GRX library fails}{8}{17}{77} \secentry{C\t {++} compiler says ``NULL redefined''}{8}{18}{78} \secentry{C\t {++} exceptions support}{8}{19}{78} \secentry{How to get GCC to generate assembly code}{8}{20}{79} \secentry{What's wrong with \file {sys/movedata.h}?}{8}{21}{79} \secentry{How do I create a library of object files?}{8}{22}{80} \secentry{GCC Cannot find \command {stubify}.}{8}{23}{81} \chapentry{Running Compiled Programs}{9}{83} \secentry{My program crashes only in v2.0!}{9}{1}{83} \secentry{Programs that crash in \code {malloc} or \code {free}.}{9}{2}{83} \secentry{The call stack traceback}{9}{3}{84} \secentry{Reading and writing binary files}{9}{4}{85} \secentry{Buffered screen I/O surprises}{9}{5}{86} \secentry{What do DJGPP programs need to run?}{9}{6}{87} \secentry{How many file handles can DJGPP use?}{9}{7}{87} \secentry{DJGPP and Anti-Virus Software}{9}{8}{89} \chapentry{Writing and Running Graphics Programs}{10}{91} \secentry{What GRX driver to use with your SVGA}{10}{1}{91} \secentry{Accessing the video memory}{10}{2}{91} \secentry{Graphics screen restoring under Windows}{10}{3}{92} \secentry{OpenGL and related packages for DJGPP}{10}{4}{93} \chapentry{Floating Point Issues and FP Emulation}{11}{95} \secentry{Floating-point code without 80387}{11}{1}{95} \secentry{Floating point inaccuracies when using emulator}{11}{2}{95} \secentry{Problems with emulation on Windows}{11}{3}{96} \chapentry{Debugging DJGPP Programs}{12}{97} \secentry{How to run a DJGPP program under debugger}{12}{1}{97} \secentry{How to begin debugging using the crash dump info}{12}{2}{98} \secentry{How to debug a graphics program}{12}{3}{103} \secentry{GDB finds only \file {.cc} source}{12}{4}{104} \secentry{Can GDB print class members?}{12}{5}{105} \secentry{GDB cannot list source that was #include'd}{12}{6}{105} \secentry{GDB cannot display or set static uninitialized variables}{12}{7}{106} \secentry{Debugging bool data type}{12}{8}{106} \secentry{Debugging the complex data type}{12}{9}{107} \secentry{Debuggers choke on some programs \dots {}}{12}{10}{107} \chapentry{Profiling DJGPP Programs}{13}{109} \secentry{How to profile a DJGPP program}{13}{1}{109} \secentry{Programs compiled with -pg crash when run}{13}{2}{109} \secentry{Gprof produces garbled profile}{13}{3}{110} \secentry{Why is \code {__dpmi_int} so heavily used?}{13}{4}{110} \secentry{\samp {gprof} doesn't produce output}{13}{5}{110} \chapentry{Run-time Performance of DJGPP Programs}{14}{113} \secentry{How efficient is DJGPP-generated code?}{14}{1}{113} \secentry{Comparing newer versions with old ones}{14}{2}{113} \secentry{DJGPP programs on a Pentium}{14}{3}{115} \secentry{I/O speed in DJGPP programs}{14}{4}{115} \secentry{My ported program runs much slower!}{14}{5}{117} \chapentry{Run-Time Memory Issues}{15}{119} \secentry{How much virtual memory do you have?}{15}{1}{119} \secentry{It seems \code {malloc}/\code {free} don't affect virtual memory\dots {}}{15}{2}{119} \secentry{Failure to get more memory than is physically installed}{15}{3}{120} \secentry{Memory allocation fails before all memory is used}{15}{4}{121} \secentry{Memory allocation fails under Windows}{15}{5}{121} \secentry{Memory allocation peculiarities under Windows 9X}{15}{6}{121} \secentry{Memory allocation fails under EMM386 or HIMEM}{15}{7}{122} \secentry{How much memory do parent DJGPP programs leave for their child?}{15}{8}{122} \secentry{How much stack can I have in DJGPP programs?}{15}{9}{123} \secentry{Memory-related problems in Windows 98}{15}{10}{125} \chapentry{Command-line Arguments Handling in DJGPP}{16}{127} \secentry{Filename wildcards expansion under DJGPP}{16}{1}{127} \secentry{How to disable filename wildcards expansion}{16}{2}{128} \secentry{How to pass command-line arguments with quotes or \samp {@}}{16}{3}{128} \secentry{How to pass command lines longer than 126 characters}{16}{4}{129} \secentry{What is the maximum length of command line under DJGPP}{16}{5}{130} \secentry{Why Make passes only 126 characters to programs?}{16}{6}{131} \chapentry{Converting DOS Programs/Libraries to DJGPP}{17}{133} \secentry{GCC/Gas won't accept valid assembly code \dots {}}{17}{1}{133} \secentry{Converting between Intel ASM syntax and AT&T syntax}{17}{2}{134} \secentry{Converted code GP Faults!}{17}{3}{136} \secentry{Problems with combining assembly and C/C\t {++} modules}{17}{4}{136} \secentry{I want to use a \file {.obj} or \file {.lib} code with DJGPP}{17}{5}{137} \secentry{I {\bf must} use my 16-bit code with DJGPP!!}{17}{6}{138} \secentry{What should I do with those ``near'' and ``far'' declarations?}{17}{7}{138} \secentry{How to convert _AX pseudo-registers?}{17}{8}{139} \chapentry{Low-level DOS/BIOS and Hardware-oriented Programming}{18}{141} \secentry{Got ``Unsupported INT 0xNN'' calling \code {int86}}{18}{1}{141} \secentry{How to use buffers with DOS/BIOS services}{18}{2}{141} \secentry{How to call real-mode functions}{18}{3}{143} \secentry{How to move data between your program and conventional memory}{18}{4}{144} \secentry{How to move structs returned by real-mode services?}{18}{5}{147} \secentry{Fast access to absolute addresses}{18}{6}{148} \secentry{Accessing absolute address above 1MB}{18}{7}{150} \secentry{How to make DOS/BIOS call your function}{18}{8}{151} \secentry{How to hook hardware interrupts}{18}{9}{152} \secentry{Should I use _go32_XXX or __dpmi_YYY functions?}{18}{10}{156} \secentry{Hardware interrupt hooking has its subtleties}{18}{11}{156} \secentry{Inline Assembly code with GCC}{18}{12}{158} \secentry{Using DMA with DJGPP}{18}{13}{159} \chapentry{Legal Aspects}{19}{161} \secentry{Legal (un)restrictions on DJGPP applications}{19}{1}{161} \secentry{Legal restrictions of DJGPP utilities and libraries}{19}{2}{162} \chapentry{Getting Help}{20}{165} \secentry{Don't post DJGPP-specific problems to GNU News groups}{20}{1}{165} \secentry{How to post to the DJGPP forum}{20}{2}{165} \secentry{How to become a subscriber to the mailing list}{20}{3}{165} \secentry{How to unsubscribe from the mailing list}{20}{4}{166} \secentry{Is it okay to post messages in languages other than English?}{20}{5}{167} \chapentry{Version 2 vs v1.x}{21}{169} \secentry{New features in DJGPP v2}{21}{1}{169} \secentry{DJGPP environment in v2.x}{21}{2}{169} \secentry{Why are new DJGPP versions released so slowly?}{21}{3}{170} \secentry{Where to find the best C library for DJGPP}{21}{4}{171} \chapentry{Miscellany}{22}{173} \secentry{Problems with using \sc {rhide}.}{22}{1}{173} \secentry{Unzipping complains about duplicate/invalid files.}{22}{2}{174} \secentry{How to change a DJGPP package?}{22}{3}{174} \secentry{Where to find DJGPP packages?}{22}{4}{176} \secentry{How to create symbolic links to programs}{22}{5}{182} \secentry{Where to find the DPMI specification?}{22}{6}{183} \secentry{The DJGPP Web site.}{22}{7}{184} \secentry{Where to upload your contributions to DJGPP}{22}{8}{184} \secentry{DJGPP as cross-compiler}{22}{9}{185} \secentry{GCC says ``garbage at end of number''}{22}{10}{186} \secentry{What should sizeof (struct xyzzy) return?}{22}{11}{187} \secentry{C\t {++} doesn't pack structs!}{22}{12}{188} \secentry{How to avoid ``Abort, Retry, Fail'' messages}{22}{13}{189} \secentry{What is that \file {go32-v2.exe} program?}{22}{14}{189} \secentry{What is DXE?}{22}{15}{190} \secentry{Long Filenames Don't Work!}{22}{16}{191} \secentry{Make says ``missing separator''}{22}{17}{191} \secentry{Make says ``\file {foo} has modification time in the future''}{22}{18}{192} \secentry{How to Set Up a Dual DOS/Windows Installation}{22}{19}{192} \secentry{What is in that \file {zoneinfo} directory?}{22}{20}{194} \secentry{The dark secrets of the /dev/ directory\dots {}}{22}{21}{195} \secentry{How about switching to ELF as DJGPP's object file format?}{22}{22}{195} \secentry{How to produce random numbers?}{22}{23}{196} \secentry{What are all these buzzwords I see?}{22}{24}{197} \secentry{What should the \code {main} function return in a C/C\t {++} program?}{22}{25}{198} \secentry{Rebooting the PC from a DJGPP program}{22}{26}{198} \secentry{Delaying execution for short periods of time}{22}{27}{199} \secentry{CGI programs and DJGPP}{22}{28}{199} \secentry{Why Do I Get EOF From \code {stdin}?}{22}{29}{200} \secentry{Generating the FAQ in your favorite format}{22}{30}{200} \chapentry{About this FAQ}{23}{203} \chapentry{Topic Index}{24}{205} \chapentry{Program Index}{25}{221}