Re: Compiling -- gcc -- Lex & Yacc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Phil

Yes.

On Tue, 2008-07-22 at 13:57 -0600, Phil Meyer wrote:
> William Case wrote:
> > Hi;
> >
> > I am working my way through the compiling process.  I want to be precise
> > about my question so that responders do not waste time on answering the
> > wrong question.
> >
> > Where can I find/see which preprocessor, lexical analysiser, parser etc.
> > the gcc compliler is using in Fedora?  What order are they being used in
> > and any other instructions or agruments that are being passed to them by
> > gcc (the compiler) besides the original/modified code?
> >   
> 
> This may be too onvious, and perhaps not understanding the question 
> fully, but it seems like you want to see the output of -v during a 
> compile.  It shows each step, what process is called with what 
> arguments, and the global variables as set.
> 
> Here is a cc -v  of a tiny c program:
> 
>  -> cc -v h.c
> Using built-in specs.
> Target: i386-redhat-linux
> Configured with: ../configure --prefix=/usr --mandir=/usr/share/man 
> --infodir=/usr/share/info 
> --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap 
> --enable-shared --enable-threads=posix --enable-checking=release 
> --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions 
> --enable-languages=c,c++,objc,obj-c++,java,fortran,ada 
> --enable-java-awt=gtk --disable-dssi --enable-plugin 
> --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre 
> --enable-libgcj-multifile --enable-java-maintainer-mode 
> --with-ecj-jar=/usr/share/java/eclipse-ecj.jar 
> --disable-libjava-multilib --with-cpu=generic --build=i386-redhat-linux
> Thread model: posix
> gcc version 4.3.0 20080428 (Red Hat 4.3.0-8) (GCC)
> COLLECT_GCC_OPTIONS='-v' '-mtune=generic'
>  /usr/libexec/gcc/i386-redhat-linux/4.3.0/cc1 -quiet -v h.c -quiet 
> -dumpbase h.c -mtune=generic -auxbase h -version -o /tmp/ccAc0MUf.s
> ignoring nonexistent directory 
> "/usr/lib/gcc/i386-redhat-linux/4.3.0/include-fixed"
> ignoring nonexistent directory 
> "/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../i386-redhat-linux/include"
> #include "..." search starts here:
> #include <...> search starts here:
>  /usr/local/include
>  /usr/lib/gcc/i386-redhat-linux/4.3.0/include
>  /usr/include
> End of search list.
> GNU C (GCC) version 4.3.0 20080428 (Red Hat 4.3.0-8) (i386-redhat-linux)
>     compiled by GNU C version 4.3.0 20080428 (Red Hat 4.3.0-8), GMP 
> version 4.2.2, MPFR version 2.3.0-p2.
> GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
> Compiler executable checksum: a6100d27c113f078654b8bcf6e8eb1d2
> h.c:4:16: warning: character constant too long for its type
> COLLECT_GCC_OPTIONS='-v' '-mtune=generic'
>  as -V -Qy -o /tmp/ccvbBE9m.o /tmp/ccAc0MUf.s
> GNU assembler version 2.18.50.0.6 (i386-redhat-linux) using BFD version 
> version 2.18.50.0.6-4.fc9 20080403
> COMPILER_PATH=/usr/libexec/gcc/i386-redhat-linux/4.3.0/:/usr/libexec/gcc/i386-redhat-linux/4.3.0/:/usr/libexec/gcc/i386-redhat-linux/:/usr/lib/gcc/i386-redhat-linux/4.3.0/:/usr/lib/gcc/i386-redhat-linux/:/usr/libexec/gcc/i386-redhat-linux/4.3.0/:/usr/libexec/gcc/i386-redhat-linux/:/usr/lib/gcc/i386-redhat-linux/4.3.0/:/usr/lib/gcc/i386-redhat-linux/
> LIBRARY_PATH=/usr/lib/gcc/i386-redhat-linux/4.3.0/:/usr/lib/gcc/i386-redhat-linux/4.3.0/:/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../:/lib/:/usr/lib/
> COLLECT_GCC_OPTIONS='-v' '-mtune=generic'
>  /usr/libexec/gcc/i386-redhat-linux/4.3.0/collect2 --eh-frame-hdr 
> --build-id -m elf_i386 --hash-style=gnu -dynamic-linker 
> /lib/ld-linux.so.2 /usr/lib/gcc/i386-redhat-linux/4.3.0/../../../crt1.o 
> /usr/lib/gcc/i386-redhat-linux/4.3.0/../../../crti.o 
> /usr/lib/gcc/i386-redhat-linux/4.3.0/crtbegin.o 
> -L/usr/lib/gcc/i386-redhat-linux/4.3.0 
> -L/usr/lib/gcc/i386-redhat-linux/4.3.0 
> -L/usr/lib/gcc/i386-redhat-linux/4.3.0/../../.. /tmp/ccvbBE9m.o -lgcc 
> --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s 
> --no-as-needed /usr/lib/gcc/i386-redhat-linux/4.3.0/crtend.o 
> /usr/lib/gcc/i386-redhat-linux/4.3.0/../../../crtn.o
> 

That was what I wanted to see although not quite so rough.  I had hoped
there might some minimal explanations along the way and that it would
not be necessary to actually compile something to see it.  But,
essentially that was what I wanted to see.

An occasional 'here be dragons'; ie
"/usr/lib/gcc/i386-redhat-linux/4.3.0/../../../../i386-redhat-linux/include"
'here be lexer' or 'here be parser' or 'here be assembler' etc. or some
such.  Perhaps a document that says at such and such a point the
preprocesser function(s) or lexer function(s) are called.  Anything that
explains, directs, shows or helps let the user know what is going on.

But, if that is all I can get, I will dig into the gcc library.

-- 
Regards Bill;
Fedora 9, Gnome 2.22.3
Evo.2.22.3.1, Emacs 22.2.1

-- 
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list

[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux