<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinycc/win32/tools/tiny_libmaker.c, branch main</title>
<subtitle>Tiny C Compiler by Fabrice Bellard Git mirror of the final release by Bellard, discarding all changes after. The repository at https://repo.or.cz/tinycc.git has become untrustworthy. Also the tcc sources have become tainted with AI slop.</subtitle>
<id>https://git.datenwolf.net/tinycc/atom/win32/tools/tiny_libmaker.c?h=main</id>
<link rel='self' href='https://git.datenwolf.net/tinycc/atom/win32/tools/tiny_libmaker.c?h=main'/>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/'/>
<updated>2017-02-18T08:55:34Z</updated>
<entry>
<title>tcctools.c: integrate tiny_libmaker/_impdef</title>
<updated>2017-02-18T08:55:34Z</updated>
<author>
<name>grischka</name>
<email>grischka</email>
</author>
<published>2017-02-18T08:55:34Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=2d3b9559bf569f137cefb7f8386a0dc58e33c81f'/>
<id>urn:sha1:2d3b9559bf569f137cefb7f8386a0dc58e33c81f</id>
<content type='text'>
usage:
    tcc -ar [rcsv] lib files...
    tcc -impdef lib.dll [-v] [-o lib.def]

also:
- support more files with -c: tcc -c f1.c f2.c ...
- fix a bug which caused tcc f1.c f2.S to produce no asm
- allow tcc -ar @listfile too
- change prototype: _void_ tcc_set_options(...)
- apply -Wl,-whole-archive when a librariy is given
  as libxxx.a also (not just for -lxxx)
</content>
</entry>
<entry>
<title>tiny_libmaker: fix a comment</title>
<updated>2016-06-19T19:19:06Z</updated>
<author>
<name>Avi Halachmi (:avih)</name>
<email>avihpit@yahoo.com</email>
</author>
<published>2016-06-19T19:19:06Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=175158843559e494ae81b755d251ecf1a58ecbb2'/>
<id>urn:sha1:175158843559e494ae81b755d251ecf1a58ecbb2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tiny_libmaker: more robust arguments interpretation</title>
<updated>2016-06-19T11:43:46Z</updated>
<author>
<name>Avi Halachmi (:avih)</name>
<email>avihpit@yahoo.com</email>
</author>
<published>2016-06-12T11:51:29Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=100f94be99ef06fb168850da528492b00e7520dc'/>
<id>urn:sha1:100f94be99ef06fb168850da528492b00e7520dc</id>
<content type='text'>
- Syntax is now much closer to gnu ar, but still supports whatever was
  supported before, with the following exceptions (which gnu ar has too):
  - lib is now mandatory (was optional and defaulted to ar_test.a before).
  - Path cannot start with '-' (but ./-myfile.o is OK).
- Unlike gnu ar, modes are still optional (as before).
- Now supports also (like gnu ar):
  - First argument as options doesn't have to start with '-', later options do.
  - Now supports mode v (verbose) with same output format as gnu ar.
  - Any names for lib/objs (were limited to .a/.o - broke cmake on windows).
  - Now explicitly fail on options which would be destructive for the user.
  - Now doesn't get confused by options between file arguments.
- Still ignores other unknown options - as before.
- Now doesn't read out-of-bounds if an option is one char.

- As a result, cmake for windows can now use tiny_libmaker as ar, and
  configure can also detect tiny_libmaker as a valid ar (both couldn't before).

Ignoring all options could previously cause to misinterpret the mode in a
destructive way, e.g. if the user wanted to do something with an existing
archive (such as p - print, or x - extract, etc), then it would instead just
delete (re-create) the archive.

Modes which can be destructive if ignored now explicitly fail. These include
[habdioptxN]. Note that 'h' can be ignored, but this way we also implicitly
print the usage for -h/--help.

The .a/.o name limitations previously resulted in complete failure on some
cases, such as cmake on windows which uses &lt;filename&gt;.obj and &lt;libname&gt;.lib .

Fixed: e.g. 'tiny_libmaker r x.a x.o' was reading out of bounds [-1] for 'r'.
</content>
</entry>
<entry>
<title>Revert all of my changes to directories &amp; codingstyle.</title>
<updated>2015-07-29T20:57:12Z</updated>
<author>
<name>gus knight</name>
<email>waddlesplash@gmail.com</email>
</author>
<published>2015-07-29T20:53:57Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=89ad24e7d63f7488c2796b30d41303f52663a8c4'/>
<id>urn:sha1:89ad24e7d63f7488c2796b30d41303f52663a8c4</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Reorganize the source tree.</title>
<updated>2015-07-27T20:03:25Z</updated>
<author>
<name>gus knight</name>
<email>waddlesplash@gmail.com</email>
</author>
<published>2015-07-27T20:03:25Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=47e06c6d4e542e47fcbad69a78c2436a854a0779'/>
<id>urn:sha1:47e06c6d4e542e47fcbad69a78c2436a854a0779</id>
<content type='text'>
 * Documentation is now in "docs".
 * Source code is now in "src".
 * Misc. fixes here and there so that everything still works.

I think I got everything in this commit, but I only tested this
on Linux (Make) and Windows (CMake), so I might've messed
something up on other platforms...
</content>
</entry>
<entry>
<title>libtcc: new LIBTCCAPI tcc_set_options(TCCState*, const char*str)</title>
<updated>2013-02-12T18:13:28Z</updated>
<author>
<name>grischka</name>
<email>grischka</email>
</author>
<published>2013-02-12T18:13:28Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=05108a3b0a8eff70739b253b8995999b1861f9f2'/>
<id>urn:sha1:05108a3b0a8eff70739b253b8995999b1861f9f2</id>
<content type='text'>
This replaces       -&gt; use instead:
-----------------------------------
- tcc_set_linker    -&gt; tcc_set_options(s, "-Wl,...");
- tcc_set_warning   -&gt; tcc_set_options(s, "-W...");
- tcc_enable_debug  -&gt; tcc_set_options(s, "-g");

parse_args is moved to libtcc.c (now tcc_parse_args).

Also some cleanups:
- reorder TCCState members
- add some comments here and there
- do not use argv's directly, make string copies
- use const char* in tcc_set_linker
- tccpe: use fd instead of fp

tested with -D MEM_DEBUG: 0 bytes left
</content>
</entry>
<entry>
<title>tcc -vv/--print-search-dirs: print more info</title>
<updated>2013-02-09T23:38:40Z</updated>
<author>
<name>grischka</name>
<email>grischka</email>
</author>
<published>2013-02-09T23:38:40Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=8042121d74906eacec7add2ddc85270e1db3ca88'/>
<id>urn:sha1:8042121d74906eacec7add2ddc85270e1db3ca88</id>
<content type='text'>
tests/Makefile:
- print-search-dirs when 'hello' fails
- split off hello-run

win32/include/_mingw.h:
- fix for compatibility with mingw headers
  (While our headers in win32 are from mingw-64 and don't have
  the problem)

tiny_libmaker:
- don't use "dangerous" mktemp
</content>
</entry>
<entry>
<title>tccpe: cleanup ELFW() macros etc.</title>
<updated>2011-07-14T17:23:04Z</updated>
<author>
<name>grischka</name>
<email>grischka</email>
</author>
<published>2011-07-14T17:23:04Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=aa80e5b1ff9a0dedb5a41916716870345033ca30'/>
<id>urn:sha1:aa80e5b1ff9a0dedb5a41916716870345033ca30</id>
<content type='text'>
</content>
</entry>
<entry>
<title>tiny_libmaker: strip leading directory to avoid buffer overrun</title>
<updated>2010-12-04T15:56:58Z</updated>
<author>
<name>grischka</name>
<email>grischka</email>
</author>
<published>2010-12-04T15:56:58Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=69fe7585a2d1504bc6b3395f62638d32cb59cbb8'/>
<id>urn:sha1:69fe7585a2d1504bc6b3395f62638d32cb59cbb8</id>
<content type='text'>
The arhdr.ar_name has 16 bytes.  Long object names esp. with
leading directory were causing a buffer overrun which was
detected by glibc.
</content>
</entry>
<entry>
<title>build: remove #include "config.h" from target dependent files</title>
<updated>2010-11-26T19:46:54Z</updated>
<author>
<name>grischka</name>
<email>grischka</email>
</author>
<published>2010-11-26T19:45:10Z</published>
<link rel='alternate' type='text/html' href='https://git.datenwolf.net/tinycc/commit/?id=9bd69bf49fb37554d199d0040c81bea009d43092'/>
<id>urn:sha1:9bd69bf49fb37554d199d0040c81bea009d43092</id>
<content type='text'>
This is to make cross build of libtcc1.a easier.
</content>
</entry>
</feed>
