This reverts commit 1baac27e8c.
In order to link gcc 7's output, relaxing this error check wasn't
enough as reported on https://github.com/rui314/mold/issues/145.
We need to remove more error checks or keep them as-is.
For now, I'll restore all the error checks, but before making another
release, I may remove all error checks to accept gcc 7's buggy
output files.
Once object files are linked into an executable or a shared object file,
sections are no longer splittable. So these bits don't make sense anymore.
Previously, we cleared the bits. But it looks like there are tools that
are picky about them. So we'll just leave them as-is.
Fixes https://github.com/rui314/mold/issues/155
This is an attempt to speed up version script application.
It looks like RE2 is faster than libstdc++'s std::regex.
This change reduces libQt6Gui.so.6.3.0's link time by about 30%.
https://github.com/rui314/mold/issues/156
In some environment, XXH3 isn't available as a binary package.
If you do not like to use the imported xxhash library but instead
link to system's libxxhash.so, invoke make with `SYSTEM_XXHASH=1`.
These test files are not only invoked by make by also directly by hand.
Unsetting `LANG` on each file so that they don't fail in a non-English
environment.
This change is mechanically created by the following command:
sed -i '1 a export LANG=' test/*/*.sh
If the tests are executed in a different locale like French, some logs (ex: ```out/test/elf/auxiliary/log```) can contain output like:
```La section dynamique à l'offset 0x2000 contient 10 entrées :```
which of course doesn't work as the grep is
```
fgrep -q 'Auxiliary library: [foo]' $t/log
```
Signed-off-by: Sylvestre Ledru <sylvestre@debian.org>
Previously, if the following conditions are met:
- we are creating a shared object file,
- there's an undefined symbol in an input object file that are
to be promoted to a dynamic symbol, and
- a version script defining a default version is given,
then the symbol gets the default version. But that's a wrong behavior
because version scripts should not affect symbols that are not defined
in an output file.
This change fixes the issue by not setting version to such symbol.
Fixes https://github.com/rui314/mold/issues/151
* add missing -lrt flag to Makefile
vis #140
* update where -lrt is added to Makefile
* add -lrt in Makefile to appropriate line
Signed-off-by: Miguel Raz Guzmán Macedo <miguelraz@gmail.com>
Negligible saving and downstream, distributions usually recompress or
compress with their own specific options. Unconditionally compressing
man pages, while well intended, usually creates more hassle there.
Signed-off-by: Sam James <sam@gentoo.org>