Sponsored Content
Top Forums Programming A question regarding the gcc compiler ... Post 302476289 by Corona688 on Wednesday 1st of December 2010 10:30:04 AM
Old 12-01-2010
So, you're trawling the entire /usr/lib/ directory? by default gcc uses these and only these:
Code:
# Compiling with -static to make it more obvious which things it uses
$ echo "main() { return(42); }" > 42.c
$ strace -f gcc -static 42.c -o 42 2> 42.log
$  grep "\.[ao]" 42.log | grep open | egrep -v "ENOENT|/tmp"
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../crt1.o", O_RDONLY|O_LARGEFILE) = 4
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../crti.o", O_RDONLY|O_LARGEFILE) = 5
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/crtbeginT.o", O_RDONLY|O_LARGEFILE) = 6
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/libgcc.a", O_RDONLY|O_LARGEFILE) = 8
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/libgcc_eh.a", O_RDONLY|O_LARGEFILE) = 9
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../libc.a", O_RDONLY|O_LARGEFILE) = 10
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/crtend.o", O_RDONLY|O_LARGEFILE) = 11
[pid  7741] open("/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../crtn.o", O_RDONLY|O_LARGEFILE) = 12

Try a library it'll have to look for, like pthread:
Code:
# Yes, I'm aware the code is nonsense.  Nothing better's needed
$ echo "main() { return(pthread_create(42)); }" > 42.c
$ gcc 42.c
/tmp/cckAe1dw.o: In function `main':
42.c:(.text+0x19): undefined reference to `pthread_create'
collect2: ld returned 1 exit status

...It didn't find it. gcc only looks inside what it's told to look inside -- by default a very small set of libraries encompassing stdio, libc, a few math builtins, that's it. It has to be explicitly told to check in libpthread.so (or libpthread.a when linking statically) like
Code:
$ gcc -lpthread 42.c
$

So gcc never had any special superfast linker finding thing. It's just been told where to look. When you start linking in dozens of libraries, you'll indeed find gcc having to do a lot more work...
This User Gave Thanks to Corona688 For This Post:
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

cc compiler / gcc

:confused: I have a question concerning gcc. IŽd like to install the gcc on my Mac OS X, but when I try to run the configure command I get the following message: floriant% ./configure ./configure: read-only variable: PWD Configuring for a powerpc-apple-darwin5.4 host. *** This configuration... (2 Replies)
Discussion started by: florian.turck
2 Replies

2. Programming

gcc compiler

i write c++ code it run perfectely with g++ compiler but same code when i compile with GCC compiler it gives linker error , followed these linker error /tmp/ccfZtXOQ.o(.text+0x22): In function `main': conf_system.cpp: undefined reference to `operator new(unsigned int)'... (5 Replies)
Discussion started by: munnu
5 Replies

3. UNIX for Dummies Questions & Answers

xl C/C++ compiler to GCC compiler

Hi, we are converting from IBM-AIX(xl c/c++ compiler) to Linux(GCC complier). As a part of this i need to change the CFLAGS. The xl c/c++ complier CFLAGS is CFLAGS := $(CDEBUG) $(PROJECT_INCLUDE_DIRS) $(COBJECT_MODE) -qcpluscmt -qmakedep -qcheck=all \ -qalign=bit_packed $(LINT_FLAGS)... (0 Replies)
Discussion started by: pbattu1
0 Replies

4. UNIX for Dummies Questions & Answers

gcc compiler ---querry

i am newbie my querry is if i am having a gcc compiler which has been a native build with a particular version of binutilities..then when i will use this compiler to build other packages ..then in the linking stage which linker it will use if i do not set my path. ...will it uses by default... (0 Replies)
Discussion started by: mobydick
0 Replies

5. Solaris

gcc compiler uninstallation

OS : UNIX SUN SOLARIS 10 I installed gcc - 3.4.2 in sun solaris 10 unix machine. But i need to install gcc 2.7.2.3 now. Do i need to uninstall gcc-3.4.2 and install gcc - 2.7.2.3 or can i directly install gcc 2.7.2.3 without uninstalling gcc 3.4.2. I used pkgadd -d command to install gcc. (3 Replies)
Discussion started by: satish@123
3 Replies

6. Ubuntu

gcc compiler

where to download gcc compiler for ubuntu? how to install? how to build and run "c programs"? screen shots if possible.....:b::D tutorials too:cool: (5 Replies)
Discussion started by: villanarun
5 Replies

7. Shell Programming and Scripting

gcc compiler

I am using open suse linux. I want to install gcc compiler in my machine. I ahve checked man gcc and man cc. But it's not there. Can someone help me (4 Replies)
Discussion started by: pritish.sas
4 Replies

8. Programming

gcc compiler

Which gcc compiler release had the Arm 9 multicore support?Whether the compiler that used for the single Arm 9 core can be used for its multicore systems ? If gcc not support,please tell me which are the compilers that are available for Arm 9 multicore systems (including commerical).Whether... (0 Replies)
Discussion started by: sujith4u87
0 Replies

9. UNIX for Dummies Questions & Answers

cc compiler and gcc compiler

hi, can we install gcc compiler in unix based OS(sun solar,IBM AIX,HP,etc) and also can we install sun cc compiler in AIX environment and vice versa. and more ..is linux support cc compiler regards Ajay (3 Replies)
Discussion started by: ajaysahoo
3 Replies
SITEPODS(1p)						User Contributed Perl Documentation					      SITEPODS(1p)

NAME
sitepods - print out the paths to the modules that this site added DESCRIPTION
This program shows the paths to module pods that are in the site_perl directories. EXAMPLES
$ sitepods /usr/local/devperl/lib/site_perl/5.00554/i686-linux/XML/Parser/Expat.pm /usr/local/devperl/lib/site_perl/5.00554/i686-linux/XML/Parser.pm You can also run this using alternate perl binaries, like so: $ oldperl -S sitepods .... SEE ALSO
faqpods(1), modpods(1), pods(1), podpath(1), and stdpod(1). AUTHORS and COPYRIGHTS Copyright (C) 1999 Tom Christiansen. Copyright (C) 2006-2008 Mark Leighton Fisher. This is free software; you can redistribute it and/or modify it under the terms of either: (a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or (b) the Perl "Artistic License". (This is the Perl 5 licensing scheme.) Please note this is a change from the original pmtools-1.00 (still available on CPAN), as pmtools-1.00 were licensed only under the Perl "Artistic License". perl v5.10.1 2010-02-22 SITEPODS(1p)
All times are GMT -4. The time now is 09:40 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy