🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.unix.bsd
Article #6014

Re: [386bsd] Strange behavior of the system.

#6014
From: Richard Tobin
Date: Mon, 11 Jan 1993 15:21
39 lines
2096 bytes
In article <3871@tansei1.tansei.cc.u-tokyo.ac.jp> mhiroshi@tansei.cc.u-tokyo.ac.jp (H. Murakami) writes:
>I encountered a unbelieavable behavior of the system now.
>If I linked the object files using gcc2 then the executable
>outputs just two warning.
>However, if I make the object archive first, and then
>link is made using the gcc2 for the object and the library,
>the result is different!

>How this can be possible????

It would help if you told us more about your program.

A possible explanation is this:

Object files and libraries are processed sequentially by the linker.
Object files are always linked in.  Modules from libraries are only
linked in if they define a symbol that is (at the time the library
is processed) referenced and undefined.

Suppose your program calls a function in the standard library (say
printf).  This library function calls another library function (say
vfprintf).  If you link your program with a .o file defining vfprintf,
that version of vfprintf will be used, and the one in the standard
library ignored.  On the other hand, if you link with a library that
defines vfprintf (but not printf), the linker will not use your
vfprintf because it isn't referenced in your program.  When it comes
to process libc.a, it will link in printf, which will result in an
undefined reference to vfprintf.  It therefore links in the version of
vfprintf from libc.a.

Libraries are not just like a big object file.  If that's what you
want then combine your .o files into one using "ld -r" rather than
"ar".

-- Richard
-- 
Richard Tobin,
Human Communication Research Centre,                       R.Tobin@ed.ac.uk
Edinburgh University.
Technical Details
Message-ID: <8144@skye.ed.ac.uk>
Path: arc1-ca.pugleaf.net!sparky!uunet!pipex!bnr.co.uk!uknet!edcastle!aiai!richard
References: <3871@tansei1.tansei.cc.u-tokyo.ac.jp>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!sparky!uunet!pipex!bnr.co.uk!uknet!edcastle!aiai!richard
From: richard@aiai.ed.ac.uk (Richard Tobin)
Newsgroups: comp.unix.bsd
Subject: Re: [386bsd] Strange behavior of the system.
Message-ID: <8144@skye.ed.ac.uk>
Date: 11 Jan 93 15:21:28 GMT
References: <3871@tansei1.tansei.cc.u-tokyo.ac.jp>
Sender: news@aiai.ed.ac.uk
Organization: HCRC, University of Edinburgh
Lines: 39