Martin Storsjö
9e9509f307
winebuild: Fix relay entry points in Thumb mode with binutils/ELF and LLVM/PE.
...
b1fe783ade
fixed relay entry points
in Thumb mode when assembled with Clang/LLVM in ELF mode, but broke
them when assembled with binutils as (and PE mode with LLVM didn't
work either before or after).
When/where the thumb bit is applied on symbols varies a lot between
assemblers; this is a notoriously vague and undocumented area.
After a .thumb_func directive, binutils as considers the next
non-local symbol as a thumb symbol, to have the thumb bit set.
LLVM's built-in assembler considers the next symbol, local or not,
to be a thumb symbol. (Just noting for reference for possible
solutions, this particular difference didn't play a role so far.)
Secondly, in a symbol difference expression like this:
.long symbol1 - symbol2
Binutils as ignores the potential thumb state for both symbols and
just calculates the raw distance. LLVM does include the thumb bit
in symbol1 but ignores it in symbol2.
Finally, for PE targets, the linker sets the thumb bit on all
absolute addresses pointing to the text section, regardless of any
.thumb_func directives at assembly time. (I.e., the
__wine_spec_relay_entry_points entry in .L__wine_spec_relay_descr
gets the bit set even if it wasn't marked as .thumb_func.)
Therefore, mark __wine_spec_relay_entry_points as .thumb_func, as
the absolute address to it will end up with the thumb bit set in
PE builds in any case.
Don't mark the individual relay entry pointers as thumb functions
(the code still is generated as thumb as there hasn't been any
mode switch back to arm mode); this makes the differences calculated
correctly (both LLVM and binutils ignore the thumb state of the
subtracted label).
If desired, one could change __wine_spec_relay_entry_point_%d into
local labels with a .L prefix, just as before
b1fe783ade
again, it doesn't make
any difference in this form.
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-05 11:58:42 +01:00
Eric Pouech
d33ff5d888
mscvpdb.h: Update some line number oriented definitions.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 20:32:51 +01:00
Eric Pouech
23fe1ad987
winedump: Also dump library name for a module.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 20:32:51 +01:00
Eric Pouech
f64c6e611b
winedump: Dump index leaves (TPI).
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 20:32:51 +01:00
Eric Pouech
fd959ef060
mscvpdb.h: Add definition for friend function v3.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 20:32:51 +01:00
Eric Pouech
1131b32685
winedump: Add some missing next record computation for type leaf.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 20:32:51 +01:00
Eric Pouech
f0b8518333
mscvpdb.h: Update symbol header for linetab2's block size.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-02 20:32:51 +01:00
Huw Davies
be59553410
wmc: Remove struct and enum typedefs.
...
This has the side effect of fixing the build on macOS after
commit 2c1b815363
.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-26 10:39:34 +02:00
Alistair Leslie-Hughes
d09d4d97e0
cng.sys: New dll.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48981
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 18:53:31 +02:00
Damjan Jovanovic
f01b028d58
wrc: Use sysctl instead of /proc/curproc/file on FreeBSD.
...
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 18:50:59 +02:00
Damjan Jovanovic
2c1b815363
wmc: Use sysctl instead of /proc/curproc/file on FreeBSD.
...
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 18:50:59 +02:00
Damjan Jovanovic
c1e83ae9fb
winegcc: Use sysctl instead of /proc/curproc/file on FreeBSD.
...
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 18:50:59 +02:00
Damjan Jovanovic
6d67748154
widl: Use sysctl instead of /proc/curproc/file on FreeBSD.
...
Signed-off-by: Damjan Jovanovic <damjan.jov@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 18:50:59 +02:00
Alexandre Julliard
30fb17bda0
makefiles: Add support for importing PE system libraries using the -l option.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 11:05:07 +02:00
Alexandre Julliard
d1248c8a0c
makefiles: Don't try to link a library to itself.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 11:04:11 +02:00
Alexandre Julliard
5a8f7d1f74
winebuild: Wrap 16-bit fake dlls in a PE module.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51564
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-21 14:53:32 +02:00
Alexandre Julliard
2f0401c783
winebuild: Add a more generic way to create directories and sections in fake dlls.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-21 14:03:54 +02:00
Francois Gouget
c35b41a3f2
wrc: Add a trailing linefeed to a couple of error() messages.
...
Unlike most of the other wrc error functions, error() does not append a
trailing linefeed.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-20 18:58:29 +02:00
Nikolay Sivov
992e0a6045
dwrite: Add properties for new Unicode 13 scripts.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-18 16:01:34 +02:00
Alexandre Julliard
d208b29d10
winecfg: Store the logo image in PNG format.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-18 15:56:01 +02:00
Alexandre Julliard
a1be6b475d
makefiles: Don't pass warning flags to external libraries.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-18 11:07:23 +02:00
Alexandre Julliard
a4b01382e1
makefiles: Add support for building libraries imported from external sources.
...
Based on a patch by Rémi Bernon.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-18 11:07:07 +02:00
Alexandre Julliard
339950a781
configure: Don't define _WIN32 for Cygwin builds.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-14 11:07:56 +02:00
Eric Pouech
768bb93fd7
winedump: Dump MSC's S_UNAMESPACE entries.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-13 22:52:25 +02:00
Eric Pouech
bad368750e
winedump: Fix incorrect alignment.
...
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-13 22:52:25 +02:00
Jacek Caban
5740b091b9
make_unicode: Update vertical.c path.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-13 21:57:12 +02:00
David Kahurani
3dea31ed06
winedump: Remove a FIXME.
...
It is not considered worthwhile freeing memory in short-lived
programs
Signed-off-by: David Kahurani <k.kahurani@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-12 18:29:22 +02:00
Alexandre Julliard
1699847dad
makefiles: Only build static libraries that are needed for linking.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-08 16:57:24 +02:00
Brendan Shanks
54d51df668
api-ms-win-core-realtime-l1-1-1: Add stub DLL.
...
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 18:03:11 +02:00
Alexandre Julliard
f9ee0d2f05
tools: Avoid using wine/port.h.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 18:03:11 +02:00
Alexandre Julliard
518f9a12c1
makefiles: Use the STATICLIB variable for static import libraries.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 20:29:34 +02:00
Alexandre Julliard
c60d604544
makefiles: Remove libwine_port.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 20:29:34 +02:00
Alexandre Julliard
207068c48c
tools: Move some portability defines out of port.h.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-06 20:29:34 +02:00
Alexandre Julliard
5f921c7f1b
make_xftmpl: Avoid using getopt().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:53:08 +02:00
Alexandre Julliard
e0ef12241b
sfnt2fon: Avoid using getopt_long().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:53:08 +02:00
Alexandre Julliard
3eb1855c7e
winebuild: Avoid using getopt_long().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:53:08 +02:00
Alexandre Julliard
3b0540edd0
wrc: Avoid using getopt_long().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:53:08 +02:00
Alexandre Julliard
7420715b99
wmc: Avoid using getopt_long().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:53:08 +02:00
Alexandre Julliard
4bc52e3324
widl: Avoid using getopt_long().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:53:08 +02:00
Alexandre Julliard
9c4cbde78f
tools: Implement a replacement for getopt_long().
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 11:53:08 +02:00
Jacek Caban
d5c585c6aa
makedep: Don't use -fno-builtin for importlibs.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 16:09:23 +02:00
Jacek Caban
63e6eaedee
makedep: Use -fno-builtin for CRT DLLs on PE targets.
...
Just like we do for other targets with cross compiler enabled. Fixes
PE-only i686 build with llvm-mingw, which otherwise uses unexpected
optimizations.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 16:09:17 +02:00
Nikolay Sivov
73686845d1
widl: Allow [hidden] and [version] on modules.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 15:49:59 +02:00
Nikolay Sivov
e3893d6bfd
widl: Allow modules without attributes.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 15:49:57 +02:00
Zebediah Figura
ea66623c3c
winebuild: Move the CALL32_CBClient[Ex]_RetAddr implementation to krnl386.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 11:00:23 +02:00
Zebediah Figura
1f3eb3996d
winebuild: Move the CALL32_CBClient[Ex] implementation to krnl386.
...
Except for the return thunk.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 10:59:35 +02:00
Jacek Caban
6857cb5695
gdi32: Move ntgdi functions to Unix library.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:12 +02:00
Alexandre Julliard
dbe7e12b54
widl: Use a string array for the filenames list.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:11 +02:00
Alexandre Julliard
3cdc6d682c
winedump: Use the shared tools functions.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:11 +02:00
Alexandre Julliard
9e3959bd9b
tools: Add a few helper functions for file names and extensions.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:11 +02:00