<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/lib/csu/i386-elf, branch release/10.4.0</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=release%2F10.4.0</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=release%2F10.4.0'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2017-02-11T20:46:49Z</updated>
<entry>
<title>Unbreak lib/csu for i386 and amd64 (MK_LIB32 == yes) after r313582</title>
<updated>2017-02-11T20:46:49Z</updated>
<author>
<name>Enji Cooper</name>
<email>ngie@FreeBSD.org</email>
</author>
<published>2017-02-11T20:46:49Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=be8447497deef9b1701a7db3e2e6b2688ea433c9'/>
<id>urn:sha1:be8447497deef9b1701a7db3e2e6b2688ea433c9</id>
<content type='text'>
I accidentally goofed up the directory for lib/libc in the CFLAGS

This is a direct commit to this branch

Pointyhat to:	ngie
</content>
</entry>
<entry>
<title>MFC r312455:</title>
<updated>2017-02-11T05:47:56Z</updated>
<author>
<name>Enji Cooper</name>
<email>ngie@FreeBSD.org</email>
</author>
<published>2017-02-11T05:47:56Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=19d6b3096c093470bd2acf7f503233442223efdf'/>
<id>urn:sha1:19d6b3096c093470bd2acf7f503233442223efdf</id>
<content type='text'>
Use SRCTOP-relative paths and .CURDIR with :H instead of ".." specified paths

This implifies pathing in make/displayed output
</content>
</entry>
<entry>
<title>MFC r292000: Remove historical GNUC test</title>
<updated>2016-05-20T19:14:15Z</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2016-05-20T19:14:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f97afcbdbc40665a7ce829fc36ef4710cf6f0a6c'/>
<id>urn:sha1:f97afcbdbc40665a7ce829fc36ef4710cf6f0a6c</id>
<content type='text'>
The requirement is for a GCC-compatible compiler and not necessarily
GCC itself. However, we currently expect any compiler used for building
the whole of FreeBSD to be GCC-compatible and many things will break if
not; there's no longer a need to have an explicit test for this in csu.
</content>
</entry>
<entry>
<title>MFC r280980:</title>
<updated>2015-04-09T06:38:32Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2015-04-09T06:38:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=9aef20351b24db33fd7faa0f25c86486398619ba'/>
<id>urn:sha1:9aef20351b24db33fd7faa0f25c86486398619ba</id>
<content type='text'>
Ensure the cross assembler, linker and objcopy are used for the build32
stage, just like for the regular world stage.

Reviewed by:	rodrigc, imp, bapt, emaste
Differential Revision: https://reviews.freebsd.org/D2187
</content>
</entry>
<entry>
<title>Only assign the environ in the startup code when environ is NULL.</title>
<updated>2013-01-07T17:58:27Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2013-01-07T17:58:27Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d549ead6a9b96936cf23dd4672fe926a0cd9ddeb'/>
<id>urn:sha1:d549ead6a9b96936cf23dd4672fe926a0cd9ddeb</id>
<content type='text'>
Preloaded library could have changed the environment, and
unconditional assingment to the environ undoes the customization.
The binaries needs to be recompiled to get the fix.

Move the common code to set up environ and __progname into the helper.
Note that ia64 possibly not fixed, due to it still using old csu.

Reported and tested by:	John Hein &lt;jhein@symmetricom.com&gt;
Reviewed by:	kan, scf
Approved by:	secteam (simon)
MFC after:	2 weeks
</content>
</entry>
<entry>
<title>After r217375, some startup objects under lib/csu are built in a special</title>
<updated>2012-04-20T21:00:39Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2012-04-20T21:00:39Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d2cc835cb5cec80295ee4234f5562e65d48368fd'/>
<id>urn:sha1:d2cc835cb5cec80295ee4234f5562e65d48368fd</id>
<content type='text'>
way: first they are compiled to assembly, then some sed'ing is done on
the assembly, and lastly the assembly is compiled to an object file.

This last step is done using ${CC}, and not ${AS}, because when the
compiler is clang, it outputs directives that are too advanced for our
old gas.  So we use clang's integrated assembler instead.  (When the
compiler is gcc, it just calls gas, and nothing is different, except one
extra fork.)

However, in the .s to .o rules in lib/csu/$ARCH/Makefile, I still passed
CFLAGS to the compiler, instead of ACFLAGS, which are specifically for
compiling .s files.

In case you are using '-g' for debug info anywhere in your CFLAGS, it
causes the .s files to already contain debug information in the assembly
itself.  In the next step, the .s files are also compiled using '-g',
and if the compiler is clang, it complains: "error: input can't have
.file dwarf directives when -g is used to generate dwarf debug info for
assembly code".

Fix this by using ${ACFLAGS} for compiling the .s files instead.

Reported by:	jasone
MFC after:	1 week
</content>
</entry>
<entry>
<title>Stop calling _init/_fini methods from crt1 for dynamic binaries.  Do</title>
<updated>2012-03-11T20:04:09Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2012-03-11T20:04:09Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=a22748dbd9f365c8a5f0483a973c2295b245b94c'/>
<id>urn:sha1:a22748dbd9f365c8a5f0483a973c2295b245b94c</id>
<content type='text'>
call preinit, init and fini arrays methods from crt1 for static binaries.

Mark new crt1 with FreeBSD-specific ELF note.

Move some common crt1 code into new MI file ignore_init.c, to reduce
duplication.  Also, conservatively adjust nearby sources for style.

Reviewed by:	kan
Tested by:	andrew (arm), flo (sparc64)
MFC after:	3 weeks
</content>
</entry>
<entry>
<title>The (%esp &amp; 0xf) == 0 should be true before the call instruction is</title>
<updated>2011-01-13T23:00:22Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2011-01-13T23:00:22Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ea40bc90e19141f8026a95235ba160ffe625e468'/>
<id>urn:sha1:ea40bc90e19141f8026a95235ba160ffe625e468</id>
<content type='text'>
executed, for the properly aligned stack.

Reported and tested by:	rstone
Pointy hat to:	kib
MFC after:	3 days
</content>
</entry>
<entry>
<title>Apply a workaround for a binutils issue with the .note.ABI-tag section</title>
<updated>2011-01-13T20:44:31Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2011-01-13T20:44:31Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=9ef4e3afcb2e1d7c7a2e3aa77d02e802654d96da'/>
<id>urn:sha1:9ef4e3afcb2e1d7c7a2e3aa77d02e802654d96da</id>
<content type='text'>
generated from lib/csu/common/crtbrand.c (which ultimately ends up in
executables and shared libraries, via crt1.o, gcrt1.o or Scrt1.o).

For all arches except sparc, gcc emits the section directive for the
abitag struct in crtbrand.c with a PROGBITS type.  However, newer
versions of binutils (after 2.16.90) require the section to be of NOTE
type, to guarantee that the .note.ABI-tag section correctly ends up in
the first page of the final executable.

Unfortunately, there is no clean way to tell gcc to use another section
type, so crtbrand.c (or the C files that include it) must be compiled in
multiple steps:

- Compile the .c file to a .s file.
- Edit the .s file to change the 'progbits' type to 'note', for the section
  directive that defines the .note.ABI-tag section.
- Compile the .s file to an object file.

These steps are done in the invididual Makefiles for each applicable arch.

Reviewed by:	kib
</content>
</entry>
<entry>
<title>Add section .note.GNU-stack for assembly files used by 386 and amd64.</title>
<updated>2011-01-07T16:07:51Z</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2011-01-07T16:07:51Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=88c23d858b1ca2ee01d8a817a3b88eb432630155'/>
<id>urn:sha1:88c23d858b1ca2ee01d8a817a3b88eb432630155</id>
<content type='text'>
</content>
</entry>
</feed>
