On Sun, 20 Oct 2002, HoytDuff wrote: >Date: Sun, 20 Oct 2002 13:32:22 -0400 >From: HoytDuff <hoyt@cavtel.net> >To: psyche-list@redhat.com >Content-Type: text/plain; > charset="iso-8859-1" >List-Id: Discussion of Red Hat Linux 8.0 (Psyche) <psyche-list.redhat.com> >Subject: Re: Compilation of avifile > >On Sunday 20 October 2002 11:13 am, Mike A. Harris scribbled in crayon on a >yellow legal pad: >> I get to see this about 50 times a day. Quite often, the >> solution to their problem is in the last 20 lines of error log >> output. ;o) > >Perhaps what is needed is a brief tutorial on understanding those last 20 >lines and applying that knowledge to fix the problem. That would be completely impossible. The failure point during a software build can be absolutely anywhere, and could be caused by any one of 100000 or more code bugs in the code being compiled. It could be caused by incompatibility of library versions a user has installed on their system compared to what the given package is looking for. It could be caused by the user not installing all of the proper development packages required to build the software, or missing header files, missing libraries, or missing other applications needed during the compilation of the software. There are literally hundreds of thousands of problems that could occur and cause a software build to fail. Compiler bugs are one of them, but they're much more rare to find than some people think. So it is basically impossible to write a short tutorial/guide/howto on fixing all problems that occur during software compilation. Someone could certainly write a guide however that covers things in more generalized and abstract terms, such as: 1) Make sure to read the README, INSTALLING, and other documentation that comes with the source code you are trying to build, and read it completely before attempting to compile. 2) Make sure your system includes all of the required libraries, and header files the software needs to build properly, and that you hae the proper version of the libraries needed installed on your system, as well as the developmental .so's for these libraries. 3) Make sure you have a compiler installed, and that the code you are compiling has been tested with that compiler. All too often, code compiles with one compiler, and not with another one. Unknowledgeable users tend to blame the problem on the compiler that wont compile the code, rather than finding the real problem. A typical cause for this, is that the author of the software, did not follow proper official standards such as ISO C99 or ISO C++ 98, and that their code compiled ok on an older compiler which did not adhere to standards, but their code does not compile on newer standards compliant compilers such as gcc 3.2, or gcc 2.96 for example. In short: Don't blame the compiler, it is sometimes at fault, but "sometimes" is very very rare. Look in 100 other places before considering a compiler fault. Reference: http://www.redhat.com/advice/speaks_gcc.html 4) If you get an "Internal Compiler Error" (ICE), you also might conclude that the compiler is buggy, as it has just basically told you that itself. The most frequent cause of these errors however, surprisingly enough, are buggy hardware rather than real compiler bugs. The usual culprit is memory which is bad, or has recently gone bad, or overheating CPU/memory/powersupply, or other odd hardware failures. Users who encounter Internal Compiler Errors, should immediately suspect bad hardware, and test their hardware by using "memtest86". Another test which is helpful to determine if an ICE might be a true compiler bug/problem, is to wipe out the source code you are compiling completely, untar it, and compile it again, saving the output to a logfile. Repeat this procedure several times using different logfiles. Examine the logfiles afterward, and if you see that the build has failed in a random spot each time, it is 99.999% chance that your hardware is faulty or malfunctioning. If it occurs in the exact same spot every single time, and on multiple different machines, then it is more likely a real compiler bug. Well, there are some pointers to help get anyone started who is interested in turning it into a HOWTO. ;o) Hope this helps. TTYL -- Mike A. Harris ftp://people.redhat.com/mharris OS Systems Engineer XFree86 maintainer Red Hat Inc. -- Psyche-list mailing list Psyche-list@redhat.com https://listman.redhat.com/mailman/listinfo/psyche-list