<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/gnu/usr.bin/cc/cc_tools, branch release/3.3.0_cvs</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>This commit was manufactured by cvs2svn to create tag</title>
<updated>1999-09-16T08:26:13+00:00</updated>
<author>
<name>cvs2svn</name>
<email>cvs2svn@FreeBSD.org</email>
</author>
<published>1999-09-16T08:26:13+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=5be28542797ac26e17de490f50e0830003596d38'/>
<id>5be28542797ac26e17de490f50e0830003596d38</id>
<content type='text'>
'RELENG_3_3_0_RELEASE'.

This commit was manufactured to restore the state of the 3.3-RELEASE image.
Releases prior to 5.3-RELEASE are omitting the secure/ and crypto/ subdirs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
'RELENG_3_3_0_RELEASE'.

This commit was manufactured to restore the state of the 3.3-RELEASE image.
Releases prior to 5.3-RELEASE are omitting the secure/ and crypto/ subdirs.
</pre>
</div>
</content>
</entry>
<entry>
<title>$Id$ -&gt; $FreeBSD$</title>
<updated>1999-08-29T14:49:43+00:00</updated>
<author>
<name>Peter Wemm</name>
<email>peter@FreeBSD.org</email>
</author>
<published>1999-08-29T14:49:43+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=f376ef90540b4d5b6e7f467620e91404ba306d89'/>
<id>f376ef90540b4d5b6e7f467620e91404ba306d89</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Split up rule for ${COMMONHDRS} so that `make -j N' doesn't create the</title>
<updated>1998-10-16T16:53:15+00:00</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>1998-10-16T16:53:15+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=19e595a57a937c0f0fa99fb28cbdc597192d7df0'/>
<id>19e595a57a937c0f0fa99fb28cbdc597192d7df0</id>
<content type='text'>
6 headers up to 6 times concurrently.  Debugged by Don Lewis
(Don.Lewis@tsc.tdk.com).

Fixed some disorder.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
6 headers up to 6 times concurrently.  Debugged by Don Lewis
(Don.Lewis@tsc.tdk.com).

Fixed some disorder.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make the build tools static to avoid trying to use the shared loader</title>
<updated>1998-08-20T21:45:46+00:00</updated>
<author>
<name>John Birrell</name>
<email>jb@FreeBSD.org</email>
</author>
<published>1998-08-20T21:45:46+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=62d43a3bfcc2f308fa96d56e311361b35535118b'/>
<id>62d43a3bfcc2f308fa96d56e311361b35535118b</id>
<content type='text'>
before it is installed.

This upsets Bruce because the host boostrap build forces tools to be
static anyway. He says I'm abusing NOTOOLS in src/Makefile by using
it to do a aout-&gt;elf transition build. One day I'll find a place to
install host tools like these to allow a true cross build.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
before it is installed.

This upsets Bruce because the host boostrap build forces tools to be
static anyway. He says I'm abusing NOTOOLS in src/Makefile by using
it to do a aout-&gt;elf transition build. One day I'll find a place to
install host tools like these to allow a true cross build.
</pre>
</div>
</content>
</entry>
<entry>
<title>Added a `build-tools' target for internal tools.</title>
<updated>1998-07-07T01:51:18+00:00</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>1998-07-07T01:51:18+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=6d31e616a0d9a6056d89767149f0c6c5b13e3dab'/>
<id>6d31e616a0d9a6056d89767149f0c6c5b13e3dab</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed missing dependencies.  The critical missing one was of bi-lexer.o</title>
<updated>1998-04-23T16:30:51+00:00</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>1998-04-23T16:30:51+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=93dce16147cbbc78235b8f02b0de3ca14b206134'/>
<id>93dce16147cbbc78235b8f02b0de3ca14b206134</id>
<content type='text'>
on bi-parser.h.  Not having it sometimes (only with `make -j') triggered
a bug suite that led to ordinary cpp output being put in .depend files.
Various bugs (the main one only with `make -j') prevented timely detection
of failure to build and install gnu/usr.bin/cc.  Eventually the missing
${WORLDTMP}/usr/libexec/cpp caused ${WORLDTMP}/usr/bin/cpp to be invoked
by cc, and this version of cpp is not suitable for such invocation.
Ordinary cpp output was put in .depend files when cpp terminated options
processing before seeing the -M flag.

Cleaned up.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
on bi-parser.h.  Not having it sometimes (only with `make -j') triggered
a bug suite that led to ordinary cpp output being put in .depend files.
Various bugs (the main one only with `make -j') prevented timely detection
of failure to build and install gnu/usr.bin/cc.  Eventually the missing
${WORLDTMP}/usr/libexec/cpp caused ${WORLDTMP}/usr/bin/cpp to be invoked
by cc, and this version of cpp is not suitable for such invocation.
Ordinary cpp output was put in .depend files when cpp terminated options
processing before seeing the -M flag.

Cleaned up.
</pre>
</div>
</content>
</entry>
<entry>
<title>Honour -static in LDLAGS.  ld without -Bstatic is happy to choose</title>
<updated>1998-03-23T11:50:38+00:00</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>1998-03-23T11:50:38+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=c5badc84cd2e7722841aa3e68e837f211c25c022'/>
<id>c5badc84cd2e7722841aa3e68e837f211c25c022</id>
<content type='text'>
static libraries if there are no shared libraries in the search path,
but gcc without -static blindly attempts to link crt0.o.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
static libraries if there are no shared libraries in the search path,
but gcc without -static blindly attempts to link crt0.o.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed `make -jN depend' (N &gt;= 2) by removing the beforedepend</title>
<updated>1998-03-12T12:52:24+00:00</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>1998-03-12T12:52:24+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=3ac62e921a2c1b4a2adfb7baa783765f42acfdab'/>
<id>3ac62e921a2c1b4a2adfb7baa783765f42acfdab</id>
<content type='text'>
target.  .ORDER doesn't work right, but is used for things related
to the depend target.  It "works" for the depend target by skipping
the build of .depend when N &gt;= 2 and there is a non-default
beforedepend target with no rules.  Recent fixes made almost all
the beforedepend targets in the tree a no-op except for this bug.

Removed vestiges of elf and aout targets.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
target.  .ORDER doesn't work right, but is used for things related
to the depend target.  It "works" for the depend target by skipping
the build of .depend when N &gt;= 2 and there is a non-default
beforedepend target with no rules.  Recent fixes made almost all
the beforedepend targets in the tree a no-op except for this bug.

Removed vestiges of elf and aout targets.
</pre>
</div>
</content>
</entry>
<entry>
<title>First round of changes to support generation of assembler for the old</title>
<updated>1998-03-08T05:29:49+00:00</updated>
<author>
<name>Peter Wemm</name>
<email>peter@FreeBSD.org</email>
</author>
<published>1998-03-08T05:29:49+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=9cb13c2344bb288bc085cca868cec9063d758510'/>
<id>9cb13c2344bb288bc085cca868cec9063d758510</id>
<content type='text'>
a.out gas and the binutils gas (elf or a.out) with a single compiler.

This uses other infrastructure not yet committed, in order to support
both a.out and elf it needs to be able to get to both a.out and elf
gas, ld, libs, crt* etc.  So for now, the support is pretty much dormant.

The new freebsd.h file is based on the old freebsd-elf.h file (which has a
long lineage, right back through linux and svr4 files).  The change is
pretty dramatic from a gcc internals standpoint as it overrides a lot of
definitions in order to generate different output based on target mode.
There is potential for screw-ups, so please be on the lookout - gcc's
configuration mechanism wasn't really meant for this kind of thing.
It's believed to compile world etc just fine under both a.out and elf, can
handle global constructors and destructors, handles the differences in
a.out and elf stabs, and what sections things like exceptions go in.

The initial idea came from i386/osfrose.h which is a dual rose/elf format
target.  These two are not as diverse as a.out and elf it would seem.

The cc front-end uses external configuration to determine default object
format (still being thrashed out, so read the source if you want to see
it so far), and has a '-aout' and '-elf' override command line switch.
There are some other internal switches that can be accessed, namely -maout,
-mno-aout, -munderscores and -mnounderscores.  The underscore and local
symbol prefixing rules are controllable seperately to the output format.
(ie: it's possible to generate a.out without the _ prefixes on symbols and
also to generate elf with the _ prefixes.  This isn't quite optimal, but
does seem to work pretty well, except the linkers don't always recognise
the local symbols without their normal names)

The default format is a.out (still), nobody should see any major changes.

With both elf and a.out tools and libraries installed:

[1:26pm]/tmp-223&gt; cc -elf -o hello hello.c
peter@beast[1:27pm]/tmp-224&gt; file hello
hello: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked, not stripped
[1:27pm]/tmp-225&gt; ./hello
hello world!

[1:27pm]/tmp-226&gt; cc -aout -o hello hello.c
[1:27pm]/tmp-227&gt; file hello
hello: FreeBSD/i386 compact demand paged dynamically linked executable not stripped
1:27pm]/tmp-228&gt; ./hello
hello world!

Since my co-conspirators put a lot of effort into this too, I'll add them
so they can share the blame^H^H^H^H^Hglory. :-)

Reviewed by: sos, jdp
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
a.out gas and the binutils gas (elf or a.out) with a single compiler.

This uses other infrastructure not yet committed, in order to support
both a.out and elf it needs to be able to get to both a.out and elf
gas, ld, libs, crt* etc.  So for now, the support is pretty much dormant.

The new freebsd.h file is based on the old freebsd-elf.h file (which has a
long lineage, right back through linux and svr4 files).  The change is
pretty dramatic from a gcc internals standpoint as it overrides a lot of
definitions in order to generate different output based on target mode.
There is potential for screw-ups, so please be on the lookout - gcc's
configuration mechanism wasn't really meant for this kind of thing.
It's believed to compile world etc just fine under both a.out and elf, can
handle global constructors and destructors, handles the differences in
a.out and elf stabs, and what sections things like exceptions go in.

The initial idea came from i386/osfrose.h which is a dual rose/elf format
target.  These two are not as diverse as a.out and elf it would seem.

The cc front-end uses external configuration to determine default object
format (still being thrashed out, so read the source if you want to see
it so far), and has a '-aout' and '-elf' override command line switch.
There are some other internal switches that can be accessed, namely -maout,
-mno-aout, -munderscores and -mnounderscores.  The underscore and local
symbol prefixing rules are controllable seperately to the output format.
(ie: it's possible to generate a.out without the _ prefixes on symbols and
also to generate elf with the _ prefixes.  This isn't quite optimal, but
does seem to work pretty well, except the linkers don't always recognise
the local symbols without their normal names)

The default format is a.out (still), nobody should see any major changes.

With both elf and a.out tools and libraries installed:

[1:26pm]/tmp-223&gt; cc -elf -o hello hello.c
peter@beast[1:27pm]/tmp-224&gt; file hello
hello: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked, not stripped
[1:27pm]/tmp-225&gt; ./hello
hello world!

[1:27pm]/tmp-226&gt; cc -aout -o hello hello.c
[1:27pm]/tmp-227&gt; file hello
hello: FreeBSD/i386 compact demand paged dynamically linked executable not stripped
1:27pm]/tmp-228&gt; ./hello
hello world!

Since my co-conspirators put a lot of effort into this too, I'll add them
so they can share the blame^H^H^H^H^Hglory. :-)

Reviewed by: sos, jdp
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed `make -jN' for large N.  The usual method of pretending that all</title>
<updated>1998-03-06T13:34:36+00:00</updated>
<author>
<name>Bruce Evans</name>
<email>bde@FreeBSD.org</email>
</author>
<published>1998-03-06T13:34:36+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=6acbf2251366dc2643c011a1e432df204a10d889'/>
<id>6acbf2251366dc2643c011a1e432df204a10d889</id>
<content type='text'>
objects depend on all generated headers doesn't work because it gives
cyclic dependencies.  Give enough dependencies explicitly.  We no
longer need to use .SINGLESHELL for `make depend'.  .SINGLESHELL was
more of a bottleneck than usual because `make depend' makes everything.

Fixed some spelling and English errors.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
objects depend on all generated headers doesn't work because it gives
cyclic dependencies.  Give enough dependencies explicitly.  We no
longer need to use .SINGLESHELL for `make depend'.  .SINGLESHELL was
more of a bottleneck than usual because `make depend' makes everything.

Fixed some spelling and English errors.
</pre>
</div>
</content>
</entry>
</feed>
