I have hit the issue before where object
files or libraries passed to the linker had to be in a certain order, it was
because the linker was a single pass (as opposed to two pass) linker which had
to be able to resolve all symbols in order without scanning through everything
first. I don't believe this is that common anymore, but this may be
something the build mechanism being worked on may need to support.
Cory Bialowas
Rational Software Corporation
Product Manager
Phone: +1 (613) 591-2906
Mobile: +1 (613) 852-2073
Email: cbialowas@xxxxxxxxxxxx
-----Original Message-----
From: Schaefer, Doug
[mailto:dschaefer@xxxxxxxxxxxx]
Sent: Tuesday, December 17, 2002
9:46 PM
To: 'cdt-dev@xxxxxxxxxxx'
Subject: RE: [cdt-dev] New build
paradigms
Actually, object files can be created in any order
since the references aren't resolved until link time. But that does bring
up a great point about the order of the files on the link line since some of
the linkers fail if you didn't have references before definitions (or visa
versa, I can't remember the exact scenario, I've been spoiled too much lately
by Visual Studio's automated build ;). But, that's a whole other area
that will need to be investigated for automated build.
Doug Schaefer
Senior Staff Software Engineer
Rational - the software development
company
Ottawa (Kanata), Ontario, Canada
-----Original Message-----
From: Alain Magloire [mailto:alain@xxxxxxx]
Sent: Tuesday, December 17, 2002
7:34 PM
To: cdt-dev@xxxxxxxxxxx
Subject: Re: [cdt-dev] New build
paradigms
>
> This message is in MIME
format. Since your mail reader does not understand
> this format, some or all of
this message may not be legible.
>
>
------_=_NextPart_001_01C2A533.4217B400
> Content-Type: text/plain
>
> I actually don't think (1) is
that hard to do. Yes, you do need to figure
> out the dependencies between
translation units and the header files they
> bring in. This information
would also be necessary to generate proper
> makefiles that do incremental
build. However, it shouldn't be too difficult
> to do. Gcc provides an
option, -M, to generate this for you and I've build
> a perl script in the past to
does the same. But, as Chris mentioned, the
> CDOM, or more properly, the
indexer, should be able record what header files
> a particular file includes for
a particular set of build settings. But that
> will take some time to put in
place.
Yes, and probably it will be possible to go further in
finding the
dependencies. Most C
programmers(sic) do not even bother to put
the includes are to declare the
functions before:
# cat main.c
int main() {
int x = 0;
printf("Hello world");
/* define in file foo.c */
foo();
return 0;
}
The C parser by looking at the file can probably
figure out
that there is a dependency on foo.c
and tell the builder that it needs
to compile foo.c before
main.c. Usually this is done manually in
a Makefile
main : main.o foo.o
$(CC) -o main main.o foo.o
main.o: foo.o
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/cdt-dev