Remove temp app-emulation/wine
This commit is contained in:
parent
919c648c3e
commit
f98439cd6b
@ -1,21 +0,0 @@
|
||||
AUX wine-1.1.15-winegcc.patch 1556 SHA256 dbd89db561d7583faf317d795b8c11231575d885e21c6414add39079604dbd0d SHA512 a6a6dbde16c1f850a5cb4d6b6fe1a8129bb267c44c19de63a4eb26933fd69ff98e440d257e467d766a6a6ac326d72dd621cae37fb593c8c62e43f588ccef3f25 WHIRLPOOL 3aea848b17217ab215f860c3526c44a5d9bd9e7adfe35c02bb5c841461bdaf4bd8ac4f8e8b990c0558980381fc1b2441b79edc3ff6dcde7455203fbd1fc3f49c
|
||||
AUX wine-1.2.3-msxml3-libxml2-headers.patch 14328 SHA256 0a046e532343f9a4508307434a2f39e0a3a50a66c165b69e56dd671488d4ba7d SHA512 837bde9cfefa12b81197c9fa2978c8b17f760594eb9d6b8fe96ab4baf2f34b5d2330db245c0ee180a9d5aa59657f52b8500fd976bb70b111d0f32d4103f71f94 WHIRLPOOL e74ff9ad63b95878337d4eac342e9abbc60c73af2f4017cdd87671c472c49bee953759b9786d5b245669352dc23ac338178b415d2c4f01516c385fee66a167b5
|
||||
AUX wine-1.4_rc2-multilib-portage.patch 1256 SHA256 9d0acd304d11d1bf73f56699754aaa1bfe1facba90648ee330fdbe08d9ff4938 SHA512 ac0b29e2b4c9b04bb6694a4e4da654446f68efbf90cda6809b45dad51e6679ac5410398763fde7e9505ef959493a037aa588cee58d14906563a4746702d2b0e9 WHIRLPOOL 8ea26266c327bc8313eca9b5d39c9741b226037750ca2d1d33262420093e05c306e7f004656c362c3c50b330d050cf9e5fceaa2b024a82809aae8b3617b0ae18
|
||||
AUX wine-1.5.11-osmesa-check.patch 1888 SHA256 8aa70a10a215d5a10e70a404701cf70c0efc674ca6e2f093bbd243f70153e3bb SHA512 5c53e19efa4e080e4bc46c955d2f53beaaa55726e3ee528a5d41374452d6a75817f2145df4a2b05e0d168ed78fe81da35bab1322d6fcc736bf59ba6282e7ff9b WHIRLPOOL d35b52ddcace0fcb043894f00b14a90ecef8af87ff16d2ff091e64b34d8629a5d49ff59cae355c0457b7b9213f1ec66ae53747cb096b23c4f0a2ec8b7c8c8431
|
||||
AUX wine-1.5.17-osmesa-check.patch 1774 SHA256 dc7dde67c416bb067e528b85228cff01833a2a20c802248ef56d74184014e50e SHA512 12325e75db5e63e1d4c4e2463c3e164b1eba0d3d88455cfcd698a8bb790d7c0b3c947a06e7a09e232b1a14202e64ea2dc9331cbc4b503833f78a7c1034410c79 WHIRLPOOL 2d9bb86a5d683301c75ea275302f67616a8e9c6ebfc436b05f8f1b3d5d815c310999ca9518747abcf4d248bd18f34388dcb323c526d633c50e66ffb4bf94e5d6
|
||||
AUX wine-1.5.23-winebuild-CCAS.patch 6101 SHA256 34143c55618870dd31eea1e260ae973572d99557a20f24a4f217bb0ff1d615eb SHA512 f44580efcf4a406517a2fc65d7509a42b0b0b180a4c63f5980c894e708934d60155d87634e406763426415d00c1ea2f8f3894ac4797a2e2527ca0d9ed23430af WHIRLPOOL d62fb5c27fba3b8297ae2151a432f80d9655c0c2ccee9dee12beea84a2186c0e7965a6902d6bc5638cdb1c853c188a49b790825c8741a9dc4bb1516ff6ca9a53
|
||||
AUX wine-1.5.26-winegcc.patch 1808 SHA256 91c1012059b93a421b2eae9f2ea46b7b327d6d3d58ba0cb47021c8a57f6d8228 SHA512 fce9daf40a96f4a7502c249a30107c8dfc5d8edd4a171b863d2bf14c3ad46d18e4c29932ab4a6ede7da5d589d777b962d2f577f5360ee4db8019d71362c51d47 WHIRLPOOL 71cbe36c6bac87071472541b7f5cd3ed1b08f05479bc0016262b3f86e75738e467dad197563b4898f2b24fd0ab4e27c40dce04f244a3e7f5ea1582b4db1c5cc2
|
||||
AUX wine-1.5.30-libwine.patch 1777 SHA256 2f0155c2c1d11fd9a06deab54dd753c1161e32217eae82604f8c1d542e87af4f SHA512 e6d566f75632065def197cf27b5705a3f2f736a7b3bb4ae03df19fea00fd980a5b5d0517981469fef0fa5347c1c3b9651894fb23d937b5dbbd993cd292f67183 WHIRLPOOL 62ed15db6bddda47dcf74d846e15a9904c11abdf63e0321e7e2bc3197f60c819992b3a95a4395f85edeef9181a1866749194b9744be8d42bd94acab37470aad6
|
||||
AUX wine-1.5.31-gnutls-3.2.0.patch 1616 SHA256 3ce82009b05fe997b0d198ad83533026d6410811ecfc6254c1505d0b9d18caf0 SHA512 09de6ff03da996197cd6833c1f53e9f39b43fc43e02ad3b4e12648a57288c1fa200886a805e6811372e12665f9a5d463603f9a9ba39cb1392b2cf4d11f3f9a65 WHIRLPOOL 590a9206913a51eae81e236057bbed346dae8f895575dcc948ba7168edf5c0605db6278344fad727c2a828a2aeef258f72a57a12b5dca244a3b7b82cfe43452a
|
||||
AUX wine-1.6-memset-O3.patch 695 SHA256 1f04496713e8a401ba068702c5c3e104b18635bfb54808e5641a3c48a9b9bad4 SHA512 ad7231f8dedf98f9e9b91fcb8bbe72a716d78285127b0c33396de0b1e17a191f91f9a4a377c0e90671bb5f4e57bfb087ef7e80c9537c6c73b3c9bb90b3885968 WHIRLPOOL 91689c31054b896609493e2b0b4fe67e3d752d889f4ccae9c3e15229543341998809fd19a2040457e04fbdbd45505f0f2b49052844004193872713053d7239f8
|
||||
AUX wine-1.7.12-osmesa-check.patch 1722 SHA256 42648efa15040011ef868f92fd615924a83b5a30dab25505928226d8bc48159d SHA512 faca80f9747f3d7bfd05c3410bcccfaf17b3f397e30dd9ec382eccc326de346d195d6a184ec78e44b26d5e5e4b2af749ce58a0e6bad0b15a4fd1f2ea610d3124 WHIRLPOOL c5314849d15a53dc00af80f44249c10107b17825c4a2ab4510a5799b154bb1cdb516b3b632e1e959802588f673b9eac8ed6de2dfb59bde34acdd5b752115f695
|
||||
AUX wine-1.7.2-osmesa-check.patch 1740 SHA256 5264ac291435eb64c70cef4bdccbf8d4448472b4f014ab15ede35bcceebb6579 SHA512 4738a381923df7b45ea68092efb7ccb967907976d6d2f8bb0167af4211c377a73e296481b94092ac232f9ae09edf21447da92a134ebfff9b32acdd9e20340b95 WHIRLPOOL 95a90f8ff5a649833b39cb28de997c3b516cd09a53cf71d616c4fd412dfa6e71c47a1255a4d0597d85a62966cd9d6b9fae1c21c88e67d8650d31d414fca8fd42
|
||||
AUX wine-1.7.28-gstreamer-v4.patch 19689 SHA256 9d621741a9909973bfbd28f07b4e2eb54813d0a5d2ff10d6550f7097aff36590 SHA512 383f588f40d9efaa653c3fa326692c36df02de382729b939d04d085c28f388cc0d8c7fac49671a2045f095bf624e2be6f9de6a064e9d9e606db07b2b61b1329f WHIRLPOOL 9078e8966c1777376a077f5a636c1997b33b26150a4a4efdae472c22e0d97c572c7ce34825a98b1e5240c08dc504fea6442c9e3c193a38ea8b75bccd4c56fc77
|
||||
AUX wine-1.7.9-hcce.patch 4699 SHA256 93d5dd444f3cd445156d21dad8653ad67d195cd8c373335d43b122e68e76e673 SHA512 084fd9af46acdb035e3ec4bcdeb04cb21a09c4288777905136f8bfe74ee14833a3cee241be891ceca9c70e0a506d936d92d12422c54d1a2e211c0dbe128f98bc WHIRLPOOL ccc3fa16bf5ef0f7e1b227d0c35b4dae986a30b2a99ae2fbccff1416feac6bd6ade389d900882daa86a16e1209e977b212f33e227a5beb355d9cde2a6df1badb
|
||||
DIST wine-1.7.30.tar.bz2 21835863 SHA256 10f7caf0420970772d868ab2ae24578f89b8a04b93604473e7c41bb295e0086c SHA512 d9b20fa58b353e60ebee930c969da10618e2aca8aba530f1d31ee315e1e3e5d4c495998e59cccbfeb6452811a5c8e360c76b9ec2ae0e16a987a197a559d1f954 WHIRLPOOL 2d5a0c00d356f0960c89e162080e7b67a63ee40439b7b2e8b3774b85ecef9406ffce7cbf9b9941856c9f97f542fa34a5610607307623b07b677991710c7d92e4
|
||||
DIST wine-gentoo-2013.06.24.tar.bz2 85442 SHA256 bfbf6b25e98f717320de2ede467e3628fbc749d936b8449f8477c9dc6f41e04b SHA512 b6819889314f6a6ea16c1332f4b177c43623116763969c31b23b61754cd304dd085f5d3eafbe847159331eb97dddd9b4c10699430129ea4a71da418c1fe175f0 WHIRLPOOL 227e0ac6569736d4ad5813cef49f775dae956f4fc9255de95753d5d3cba1bf6cf3db31d23d3702bb54d2e60c5a6f779b602f0efb2096e4c827c924565b273d00
|
||||
DIST wine-mono-4.5.2.msi 52502528 SHA256 d9124edb41ba4418af10eba519dafb25ab4338c567d25ce0eb4ce1e1b4d7eaad SHA512 73c907f63b73836d5afd0753197358aaea43a74a47800f929ef0627112298256f1fa46d1b9ff297b117468d953cdeab21fb5962db13c5debbcb71004462df609 WHIRLPOOL 18d3544c6753c5a01917bfc1b694f31ce45213108527f13317ec0bb8b2d2339ce41800534967e067cd15cd186ef9e186a5d3252275e443dfa1a6ae3641d4d17c
|
||||
DIST wine-staging-1.7.30.tar.gz 8439935 SHA256 42d761cde615c5d70656078a7c2b23cf1e57f7ba174b3e6c9da6de876bc268d2 SHA512 b0dc44e6ca75f0578a7a76682b3a4acd369a18ed57d0b3bfa95c4416ed31e2630bbdf9f83e98db8b39e2f5b5fc745259af57fcc09de51b37e5e4184cbd71fd0c WHIRLPOOL f4fe5253b5c2579e342f863a0e07df872a2876a67413fa07ab61f66d32b04537e57c952e7017905fd5febad7797173aaf38132b3c067ef5068b87e74acf1ca64
|
||||
DIST wine_gecko-2.24-x86.msi 22373888 SHA256 6e38acae87ea66e2c1e8f2f0afe88f89eed3e6e0b431cd3da38dea814b71202c SHA512 f158d28ca09bc900a2680892e7ac10770e06050a9251e1ec3a953fee0bf9b1c326e166f92fb88a4648297b6587c91a5ef5af35f267bb2ba5f679da4c8fdb6898 WHIRLPOOL bbe7a2572d89dc5e0347ba11b2014bac79fc4427d7551655313a46b147a79c1607b7f46596877c459ddaa0e202337fb3d217429ddd6a4df49ee33b373a788487
|
||||
DIST wine_gecko-2.24-x86_64.msi 23608320 SHA256 47557da68bcb2aedaebb93af73275aac96ba23e896bd98f25f2acbfd216d9cc8 SHA512 45ce0dcf42c3e2fe2198092812242e3467b19db4a4946e0b1a2d6327fd48aa936fb85cc1930bace6eaba0c61bff3a6536767ba0a91a0f085f307d1bddd171f0c WHIRLPOOL b6ba7c784d3a79d7afc11f0e12f0372b52b9f194eedfd083abed36a461e7301d2dd936be3be12619364f6ac5aae9cfbfb7fc47141bff92b62826f209365210ec
|
||||
EBUILD wine-1.7.30.ebuild 15473 SHA256 a65a860f35b89492d535d52fa1951d91034bf0e71ec4bbf740afc98bcf907242 SHA512 cad207131d2631a9236954122655803543a3f44aca3a84aff6a6866ad900417078ac495ba1baff4baaa0b22d704a4007f1003de3753bd863cb613424302daf54 WHIRLPOOL fbdd9275d06cccab7cbb39ce81719346fa679563e715466517c9e231903b7061d3cb53c98925cad74b5d4d19bad39c36c531056d6ed002fe867a4bd863e57453
|
@ -1,55 +0,0 @@
|
||||
http://bugs.gentoo.org/260726
|
||||
|
||||
--- wine-1.1.15/tools/winegcc/winegcc.c
|
||||
+++ wine-1.1.15/tools/winegcc/winegcc.c
|
||||
@@ -215,10 +215,13 @@
|
||||
strarray* files;
|
||||
};
|
||||
|
||||
+#undef FORCE_POINTER_SIZE
|
||||
#ifdef __i386__
|
||||
static const enum target_cpu build_cpu = CPU_x86;
|
||||
+#define FORCE_POINTER_SIZE
|
||||
#elif defined(__x86_64__)
|
||||
static const enum target_cpu build_cpu = CPU_x86_64;
|
||||
+#define FORCE_POINTER_SIZE
|
||||
#elif defined(__sparc__)
|
||||
static const enum target_cpu build_cpu = CPU_SPARC;
|
||||
#elif defined(__ALPHA__)
|
||||
@@ -968,6 +971,9 @@
|
||||
opts.linker_args = strarray_alloc();
|
||||
opts.compiler_args = strarray_alloc();
|
||||
opts.winebuild_args = strarray_alloc();
|
||||
+#ifdef FORCE_POINTER_SIZE
|
||||
+ opts.force_pointer_size = sizeof(size_t);
|
||||
+#endif
|
||||
|
||||
/* determine the processor type */
|
||||
if (strendswith(argv[0], "winecpp")) opts.processor = proc_cpp;
|
||||
--- wine-1.1.15/tools/winebuild/main.c
|
||||
+++ wine-1.1.15/tools/winebuild/main.c
|
||||
@@ -50,10 +50,13 @@
|
||||
int link_ext_symbols = 0;
|
||||
int force_pointer_size = 0;
|
||||
|
||||
+#undef FORCE_POINTER_SIZE
|
||||
#ifdef __i386__
|
||||
enum target_cpu target_cpu = CPU_x86;
|
||||
+#define FORCE_POINTER_SIZE
|
||||
#elif defined(__x86_64__)
|
||||
enum target_cpu target_cpu = CPU_x86_64;
|
||||
+#define FORCE_POINTER_SIZE
|
||||
#elif defined(__sparc__)
|
||||
enum target_cpu target_cpu = CPU_SPARC;
|
||||
#elif defined(__ALPHA__)
|
||||
@@ -574,6 +577,10 @@
|
||||
signal( SIGTERM, exit_on_signal );
|
||||
signal( SIGINT, exit_on_signal );
|
||||
|
||||
+#ifdef FORCE_POINTER_SIZE
|
||||
+ force_pointer_size = sizeof(size_t);
|
||||
+#endif
|
||||
+
|
||||
output_file = stdout;
|
||||
argv = parse_options( argc, argv, spec );
|
||||
|
@ -1,574 +0,0 @@
|
||||
From 26603f25f73142a45b5b964bb9bb2e59bc0908d4 Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Julliard <julliard@winehq.org>
|
||||
Date: Thu, 24 Feb 2011 13:11:53 +0100
|
||||
Subject: [PATCH] msxml3: Include the system libxml headers before the Windows
|
||||
headers.
|
||||
|
||||
[Alexandre Rostovtsev <tetromino@gentoo.org>: backport to wine-1.2.3]
|
||||
---
|
||||
dlls/msxml3/attribute.c | 6 ++++++
|
||||
dlls/msxml3/bsc.c | 6 ++++++
|
||||
dlls/msxml3/cdata.c | 5 +++++
|
||||
dlls/msxml3/comment.c | 5 +++++
|
||||
dlls/msxml3/dispex.c | 5 +++++
|
||||
dlls/msxml3/docfrag.c | 5 +++++
|
||||
dlls/msxml3/domdoc.c | 11 +++++++++--
|
||||
dlls/msxml3/domimpl.c | 5 +++++
|
||||
dlls/msxml3/element.c | 5 +++++
|
||||
dlls/msxml3/entityref.c | 5 +++++
|
||||
dlls/msxml3/factory.c | 5 +++++
|
||||
dlls/msxml3/httprequest.c | 6 ++++++
|
||||
dlls/msxml3/main.c | 15 +++++++++++++++
|
||||
dlls/msxml3/msxml_private.h | 23 -----------------------
|
||||
dlls/msxml3/node.c | 31 +++++++++++++++++++++++++++----
|
||||
dlls/msxml3/nodelist.c | 5 +++++
|
||||
dlls/msxml3/nodemap.c | 5 +++++
|
||||
dlls/msxml3/parseerror.c | 5 +++++
|
||||
dlls/msxml3/pi.c | 5 +++++
|
||||
dlls/msxml3/queryresult.c | 9 +++++++--
|
||||
dlls/msxml3/regsvr.c | 4 ++++
|
||||
dlls/msxml3/saxreader.c | 10 +++++++---
|
||||
dlls/msxml3/schema.c | 12 ++++++++++++
|
||||
dlls/msxml3/text.c | 5 +++++
|
||||
dlls/msxml3/xmldoc.c | 5 +++++
|
||||
dlls/msxml3/xmlelem.c | 5 +++++
|
||||
26 files changed, 174 insertions(+), 34 deletions(-)
|
||||
|
||||
diff --git a/dlls/msxml3/attribute.c b/dlls/msxml3/attribute.c
|
||||
index d78fa47..3df93d6 100644
|
||||
--- a/dlls/msxml3/attribute.c
|
||||
+++ b/dlls/msxml3/attribute.c
|
||||
@@ -23,6 +23,12 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+# include <libxml/HTMLtree.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/bsc.c b/dlls/msxml3/bsc.c
|
||||
index b24e04c..01a09a5 100644
|
||||
--- a/dlls/msxml3/bsc.c
|
||||
+++ b/dlls/msxml3/bsc.c
|
||||
@@ -23,6 +23,12 @@
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <assert.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+# include <libxml/HTMLtree.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/cdata.c b/dlls/msxml3/cdata.c
|
||||
index 3fba66c..caf8cd8 100644
|
||||
--- a/dlls/msxml3/cdata.c
|
||||
+++ b/dlls/msxml3/cdata.c
|
||||
@@ -23,6 +23,11 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/comment.c b/dlls/msxml3/comment.c
|
||||
index e74de07..1cabfa3 100644
|
||||
--- a/dlls/msxml3/comment.c
|
||||
+++ b/dlls/msxml3/comment.c
|
||||
@@ -23,6 +23,11 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/dispex.c b/dlls/msxml3/dispex.c
|
||||
index 09b71fe..6b01b15 100644
|
||||
--- a/dlls/msxml3/dispex.c
|
||||
+++ b/dlls/msxml3/dispex.c
|
||||
@@ -22,6 +22,11 @@
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <assert.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/docfrag.c b/dlls/msxml3/docfrag.c
|
||||
index fff3f62..bebd252 100644
|
||||
--- a/dlls/msxml3/docfrag.c
|
||||
+++ b/dlls/msxml3/docfrag.c
|
||||
@@ -23,6 +23,11 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
|
||||
index 0007503..e6a61e4 100644
|
||||
--- a/dlls/msxml3/domdoc.c
|
||||
+++ b/dlls/msxml3/domdoc.c
|
||||
@@ -25,6 +25,15 @@
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <assert.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+# include <libxml/xpathInternals.h>
|
||||
+# include <libxml/xmlsave.h>
|
||||
+# include <libxml/SAX2.h>
|
||||
+# include <libxml/parserInternals.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
@@ -47,8 +56,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(msxml);
|
||||
|
||||
#ifdef HAVE_LIBXML2
|
||||
|
||||
-#include <libxml/xmlsave.h>
|
||||
-
|
||||
/* not defined in older versions */
|
||||
#define XML_SAVE_FORMAT 1
|
||||
#define XML_SAVE_NO_DECL 2
|
||||
diff --git a/dlls/msxml3/domimpl.c b/dlls/msxml3/domimpl.c
|
||||
index dd518a1..c6794ac 100644
|
||||
--- a/dlls/msxml3/domimpl.c
|
||||
+++ b/dlls/msxml3/domimpl.c
|
||||
@@ -23,6 +23,11 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/element.c b/dlls/msxml3/element.c
|
||||
index 617c008..1b5c693 100644
|
||||
--- a/dlls/msxml3/element.c
|
||||
+++ b/dlls/msxml3/element.c
|
||||
@@ -23,6 +23,11 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/entityref.c b/dlls/msxml3/entityref.c
|
||||
index db46193..1baea6e 100644
|
||||
--- a/dlls/msxml3/entityref.c
|
||||
+++ b/dlls/msxml3/entityref.c
|
||||
@@ -23,6 +23,11 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/factory.c b/dlls/msxml3/factory.c
|
||||
index 3fd229c..45df9f0 100644
|
||||
--- a/dlls/msxml3/factory.c
|
||||
+++ b/dlls/msxml3/factory.c
|
||||
@@ -24,6 +24,11 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/httprequest.c b/dlls/msxml3/httprequest.c
|
||||
index 4585484..be1a5f7 100644
|
||||
--- a/dlls/msxml3/httprequest.c
|
||||
+++ b/dlls/msxml3/httprequest.c
|
||||
@@ -22,6 +22,12 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+# include <libxml/encoding.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/main.c b/dlls/msxml3/main.c
|
||||
index 60b0cbd..47a89b1 100644
|
||||
--- a/dlls/msxml3/main.c
|
||||
+++ b/dlls/msxml3/main.c
|
||||
@@ -25,6 +25,21 @@
|
||||
#define COBJMACROS
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+# ifdef SONAME_LIBXSLT
|
||||
+# ifdef HAVE_LIBXSLT_PATTERN_H
|
||||
+# include <libxslt/pattern.h>
|
||||
+# endif
|
||||
+# ifdef HAVE_LIBXSLT_TRANSFORM_H
|
||||
+# include <libxslt/transform.h>
|
||||
+# endif
|
||||
+# include <libxslt/xsltutils.h>
|
||||
+# include <libxslt/xsltInternals.h>
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/msxml_private.h b/dlls/msxml3/msxml_private.h
|
||||
index e0279f1..e1fbb59 100644
|
||||
--- a/dlls/msxml3/msxml_private.h
|
||||
+++ b/dlls/msxml3/msxml_private.h
|
||||
@@ -102,10 +102,6 @@ BOOL dispex_query_interface(DispatchEx*,REFIID,void**);
|
||||
|
||||
#ifdef HAVE_LIBXML2
|
||||
|
||||
-#ifdef HAVE_LIBXML_PARSER_H
|
||||
-#include <libxml/parser.h>
|
||||
-#endif
|
||||
-
|
||||
/* constructors */
|
||||
extern IUnknown *create_domdoc( xmlNodePtr document );
|
||||
extern IUnknown *create_xmldoc( void );
|
||||
@@ -184,25 +180,6 @@ static inline BSTR bstr_from_xmlChar(const xmlChar *str)
|
||||
|
||||
#endif
|
||||
|
||||
-void* libxslt_handle;
|
||||
-#ifdef SONAME_LIBXSLT
|
||||
-# ifdef HAVE_LIBXSLT_PATTERN_H
|
||||
-# include <libxslt/pattern.h>
|
||||
-# endif
|
||||
-# ifdef HAVE_LIBXSLT_TRANSFORM_H
|
||||
-# include <libxslt/transform.h>
|
||||
-# endif
|
||||
-# include <libxslt/xsltutils.h>
|
||||
-# include <libxslt/xsltInternals.h>
|
||||
-
|
||||
-# define MAKE_FUNCPTR(f) extern typeof(f) * p##f
|
||||
-MAKE_FUNCPTR(xsltApplyStylesheet);
|
||||
-MAKE_FUNCPTR(xsltCleanupGlobals);
|
||||
-MAKE_FUNCPTR(xsltFreeStylesheet);
|
||||
-MAKE_FUNCPTR(xsltParseStylesheetDoc);
|
||||
-# undef MAKE_FUNCPTR
|
||||
-#endif
|
||||
-
|
||||
extern IXMLDOMParseError *create_parseError( LONG code, BSTR url, BSTR reason, BSTR srcText,
|
||||
LONG line, LONG linepos, LONG filepos );
|
||||
extern HRESULT DOMDocument_create( IUnknown *pUnkOuter, LPVOID *ppObj );
|
||||
diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c
|
||||
index bbdcb5d..2980566 100644
|
||||
--- a/dlls/msxml3/node.c
|
||||
+++ b/dlls/msxml3/node.c
|
||||
@@ -24,6 +24,23 @@
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <assert.h>
|
||||
+
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+# include <libxml/HTMLtree.h>
|
||||
+# ifdef SONAME_LIBXSLT
|
||||
+# ifdef HAVE_LIBXSLT_PATTERN_H
|
||||
+# include <libxslt/pattern.h>
|
||||
+# endif
|
||||
+# ifdef HAVE_LIBXSLT_TRANSFORM_H
|
||||
+# include <libxslt/transform.h>
|
||||
+# endif
|
||||
+# include <libxslt/xsltutils.h>
|
||||
+# include <libxslt/xsltInternals.h>
|
||||
+# endif
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
@@ -33,16 +50,22 @@
|
||||
|
||||
#include "msxml_private.h"
|
||||
|
||||
-#ifdef HAVE_LIBXML2
|
||||
-# include <libxml/HTMLtree.h>
|
||||
-#endif
|
||||
-
|
||||
#include "wine/debug.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
|
||||
|
||||
#ifdef HAVE_LIBXML2
|
||||
|
||||
+#ifdef SONAME_LIBXSLT
|
||||
+extern void* libxslt_handle;
|
||||
+# define MAKE_FUNCPTR(f) extern typeof(f) * p##f
|
||||
+MAKE_FUNCPTR(xsltApplyStylesheet);
|
||||
+MAKE_FUNCPTR(xsltCleanupGlobals);
|
||||
+MAKE_FUNCPTR(xsltFreeStylesheet);
|
||||
+MAKE_FUNCPTR(xsltParseStylesheetDoc);
|
||||
+# undef MAKE_FUNCPTR
|
||||
+#endif
|
||||
+
|
||||
static const WCHAR szBinBase64[] = {'b','i','n','.','b','a','s','e','6','4',0};
|
||||
static const WCHAR szString[] = {'s','t','r','i','n','g',0};
|
||||
static const WCHAR szNumber[] = {'n','u','m','b','e','r',0};
|
||||
diff --git a/dlls/msxml3/nodelist.c b/dlls/msxml3/nodelist.c
|
||||
index f643c5e..4b2bba9 100644
|
||||
--- a/dlls/msxml3/nodelist.c
|
||||
+++ b/dlls/msxml3/nodelist.c
|
||||
@@ -23,6 +23,11 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/nodemap.c b/dlls/msxml3/nodemap.c
|
||||
index 7d23ec8..d3d9c38 100644
|
||||
--- a/dlls/msxml3/nodemap.c
|
||||
+++ b/dlls/msxml3/nodemap.c
|
||||
@@ -23,6 +23,11 @@
|
||||
#define COBJMACROS
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/parseerror.c b/dlls/msxml3/parseerror.c
|
||||
index 4b0dc57..89f14ca 100644
|
||||
--- a/dlls/msxml3/parseerror.c
|
||||
+++ b/dlls/msxml3/parseerror.c
|
||||
@@ -25,6 +25,11 @@
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <assert.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winerror.h"
|
||||
diff --git a/dlls/msxml3/pi.c b/dlls/msxml3/pi.c
|
||||
index 0baefe4..3ebc1bf 100644
|
||||
--- a/dlls/msxml3/pi.c
|
||||
+++ b/dlls/msxml3/pi.c
|
||||
@@ -23,6 +23,11 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/queryresult.c b/dlls/msxml3/queryresult.c
|
||||
index 2c6f23e..8613b20 100644
|
||||
--- a/dlls/msxml3/queryresult.c
|
||||
+++ b/dlls/msxml3/queryresult.c
|
||||
@@ -24,6 +24,13 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+# include <libxml/xpath.h>
|
||||
+# include <libxml/xpathInternals.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
@@ -48,8 +55,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(msxml);
|
||||
|
||||
#ifdef HAVE_LIBXML2
|
||||
|
||||
-#include <libxml/xpath.h>
|
||||
-
|
||||
typedef struct _queryresult
|
||||
{
|
||||
DispatchEx dispex;
|
||||
diff --git a/dlls/msxml3/regsvr.c b/dlls/msxml3/regsvr.c
|
||||
index 415e5af..864d61e 100644
|
||||
--- a/dlls/msxml3/regsvr.c
|
||||
+++ b/dlls/msxml3/regsvr.c
|
||||
@@ -24,6 +24,10 @@
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
|
||||
#define COBJMACROS
|
||||
|
||||
diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c
|
||||
index eca9f1d..f2d340e 100644
|
||||
--- a/dlls/msxml3/saxreader.c
|
||||
+++ b/dlls/msxml3/saxreader.c
|
||||
@@ -24,6 +24,13 @@
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <assert.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+# include <libxml/SAX2.h>
|
||||
+# include <libxml/parserInternals.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
@@ -43,9 +50,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(msxml);
|
||||
|
||||
#ifdef HAVE_LIBXML2
|
||||
|
||||
-#include <libxml/SAX2.h>
|
||||
-#include <libxml/parserInternals.h>
|
||||
-
|
||||
typedef struct _saxreader
|
||||
{
|
||||
const struct IVBSAXXMLReaderVtbl *lpVBSAXXMLReaderVtbl;
|
||||
diff --git a/dlls/msxml3/schema.c b/dlls/msxml3/schema.c
|
||||
index 72d7854..c1465c0 100644
|
||||
--- a/dlls/msxml3/schema.c
|
||||
+++ b/dlls/msxml3/schema.c
|
||||
@@ -23,6 +23,18 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+# include <libxml/tree.h>
|
||||
+# include <libxml/xmlschemas.h>
|
||||
+# include <libxml/schemasInternals.h>
|
||||
+# include <libxml/hash.h>
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/parserInternals.h>
|
||||
+# include <libxml/xmlIO.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/text.c b/dlls/msxml3/text.c
|
||||
index fdcb06b..72b2ffd 100644
|
||||
--- a/dlls/msxml3/text.c
|
||||
+++ b/dlls/msxml3/text.c
|
||||
@@ -24,6 +24,11 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/xmldoc.c b/dlls/msxml3/xmldoc.c
|
||||
index d1a010f..0d1006e 100644
|
||||
--- a/dlls/msxml3/xmldoc.c
|
||||
+++ b/dlls/msxml3/xmldoc.c
|
||||
@@ -23,6 +23,11 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
diff --git a/dlls/msxml3/xmlelem.c b/dlls/msxml3/xmlelem.c
|
||||
index a71b18b..a818d14 100644
|
||||
--- a/dlls/msxml3/xmlelem.c
|
||||
+++ b/dlls/msxml3/xmlelem.c
|
||||
@@ -23,6 +23,11 @@
|
||||
#include "config.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
+#ifdef HAVE_LIBXML2
|
||||
+# include <libxml/parser.h>
|
||||
+# include <libxml/xmlerror.h>
|
||||
+#endif
|
||||
+
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winuser.h"
|
||||
--
|
||||
1.7.8.3
|
||||
|
@ -1,40 +0,0 @@
|
||||
https://bugs.gentoo.org/show_bug.cgi?id=395615
|
||||
|
||||
Explicitly add the required -m32/m64 to *FLAGS; this overrides any
|
||||
arch-specific -m* flags that may have been appended by multilib-portage.
|
||||
|
||||
Even though -m32/m64 is now added to *FLAGS, -m32/m64 still has to be
|
||||
explicitly added to CC and CXX due to wine's build system. For example,
|
||||
winegcc saves the build-time value of CC and uses it at runtime.
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -133,12 +133,18 @@
|
||||
then
|
||||
CC="$CC -m64"
|
||||
CXX="$CXX -m64"
|
||||
+ CFLAGS="$CFLAGS -m64"
|
||||
+ LDFLAGS="$LDFLAGS -m64"
|
||||
+ CXXFLAGS="$CXXFLAGS -m64"
|
||||
host_cpu="x86_64"
|
||||
notice_platform="64-bit "
|
||||
AC_SUBST(TARGETFLAGS,"-m64")
|
||||
else
|
||||
CC="$CC -m32"
|
||||
CXX="$CXX -m32"
|
||||
+ CFLAGS="$CFLAGS -m32"
|
||||
+ LDFLAGS="$LDFLAGS -m32"
|
||||
+ CXXFLAGS="$CXXFLAGS -m32"
|
||||
host_cpu="i386"
|
||||
notice_platform="32-bit "
|
||||
AC_SUBST(TARGETFLAGS,"-m32")
|
||||
@@ -150,6 +156,9 @@
|
||||
then
|
||||
CC="$CC -m32"
|
||||
CXX="$CXX -m32"
|
||||
+ CFLAGS="$CFLAGS -m32"
|
||||
+ LDFLAGS="$LDFLAGS -m32"
|
||||
+ CXXFLAGS="$CXXFLAGS -m32"
|
||||
AC_MSG_CHECKING([whether $CC works])
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM()],AC_MSG_RESULT([yes]),
|
||||
[AC_MSG_RESULT([no])
|
@ -1,38 +0,0 @@
|
||||
From 22fcf835dfe713ad93f649a901973208e0f7b62d Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Rostovtsev <tetromino@gentoo.org>
|
||||
Date: Tue, 7 Aug 2012 01:29:01 -0400
|
||||
Subject: [PATCH] Do not check for libGL symbols when checking libOSMesa
|
||||
|
||||
If mesa had been built with shared glapi, glAccum is not available in
|
||||
libOSMesa without explicitly linking to libGL. In addition, in
|
||||
mesa-8.0.x and earlier, libOSMesa needs to be explicitly linked to
|
||||
libglapi if mesa was built with shared glapi, see
|
||||
https://bugs.gentoo.org/show_bug.cgi?id=399813
|
||||
And in mesa-8.1.x, libOSMesa in addition needs libdl, libpthread, and
|
||||
libstdc++, see https://bugs.gentoo.org/show_bug.cgi?id=431832
|
||||
---
|
||||
configure.ac | 8 +++++++-
|
||||
1 files changed, 7 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 15ada86..6eab75e 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1133,7 +1133,13 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c
|
||||
|
||||
if test "$ac_cv_header_GL_osmesa_h" = "yes"
|
||||
then
|
||||
- WINE_CHECK_SONAME(OSMesa,glAccum,,,[$X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS])
|
||||
+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[$X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS])
|
||||
+ if test "x$ac_cv_lib_soname_OSMesa" = "x"; then
|
||||
+ osmesa_save_CC=$CC
|
||||
+ CC=$CXX
|
||||
+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[-lglapi -lpthread -ldl $X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS])
|
||||
+ CC=$osmesa_save_CC
|
||||
+ fi
|
||||
fi
|
||||
WINE_NOTICE_WITH(osmesa,[test "x$ac_cv_lib_soname_OSMesa" = "x"],
|
||||
[libOSMesa ${notice_platform}development files not found (or too old), OpenGL rendering in bitmaps won't be supported.])
|
||||
--
|
||||
1.7.8.6
|
||||
|
@ -1,38 +0,0 @@
|
||||
From 1ede664b18bd8a88359a3cebb291ad49833ee033 Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Rostovtsev <tetromino@gentoo.org>
|
||||
Date: Tue, 7 Aug 2012 01:29:01 -0400
|
||||
Subject: [PATCH] Do not check for libGL symbols when checking libOSMesa
|
||||
|
||||
If mesa had been built with shared glapi, glAccum is not available in
|
||||
libOSMesa without explicitly linking to libGL. In addition, in
|
||||
mesa-8.0.x and earlier, libOSMesa needs to be explicitly linked to
|
||||
libglapi if mesa was built with shared glapi, see
|
||||
https://bugs.gentoo.org/show_bug.cgi?id=399813
|
||||
And in mesa-8.1.x, libOSMesa in addition needs libdl, libpthread, and
|
||||
libstdc++, see https://bugs.gentoo.org/show_bug.cgi?id=431832
|
||||
---
|
||||
configure.ac | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index cc32c24..275b792 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1128,7 +1128,13 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c
|
||||
|
||||
if test "x$with_osmesa" != "xno"
|
||||
then
|
||||
- WINE_CHECK_SONAME(OSMesa,glAccum,,,[$X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS])
|
||||
+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[$X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS])
|
||||
+ if test "x$ac_cv_lib_soname_OSMesa" = "x"; then
|
||||
+ osmesa_save_CC=$CC
|
||||
+ CC=$CXX
|
||||
+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[-lglapi -lpthread -ldl $X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS])
|
||||
+ CC=$osmesa_save_CC
|
||||
+ fi
|
||||
WINE_NOTICE_WITH(osmesa,[test "x$ac_cv_lib_soname_OSMesa" = "x"],
|
||||
[libOSMesa ${notice_platform}development files not found (or too old), OpenGL rendering in bitmaps won't be supported.])
|
||||
fi
|
||||
--
|
||||
1.8.0
|
||||
|
@ -1,214 +0,0 @@
|
||||
From 57c57e9dfae50f045503ae9f3107fa3748512483 Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Rostovtsev <tetromino@gentoo.org>
|
||||
Date: Sun, 3 Feb 2013 19:19:36 -0500
|
||||
Subject: [PATCH] winebuild: Use $CCAS to assemble if found
|
||||
|
||||
Commit c14bdaf1 made winebuild use Clang to assemble if found.
|
||||
|
||||
However, just because a user has some version of Clang installed, it
|
||||
does not mean that she wants to use Clang to assemble Wine. For example,
|
||||
a user who has both Clang and GAS installed may want to use GAS to avoid
|
||||
textrels (see https://bugs.gentoo.org/show_bug.cgi?id=455308).
|
||||
|
||||
This patch allows the user to override which assembler gets used by
|
||||
exporting CCAS at Wine configure time; the name CCAS was chosen for
|
||||
compatibility with automake's standard AM_PROG_AS macro.
|
||||
---
|
||||
configure | 106 ++++++++++++++++++++++++++++++++++++++++++++
|
||||
configure.ac | 4 ++
|
||||
tools/winebuild/Makefile.in | 5 ++-
|
||||
tools/winebuild/utils.c | 12 +++++
|
||||
4 files changed, 126 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index e3253ee..d0b7777 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -732,6 +732,8 @@ FLEX
|
||||
TOOLSDIR
|
||||
WOW64_DISABLE
|
||||
TARGETFLAGS
|
||||
+ac_ct_CCAS
|
||||
+CCAS
|
||||
CPPBIN
|
||||
ac_ct_CXX
|
||||
CXXFLAGS
|
||||
@@ -861,6 +863,7 @@ CPPFLAGS
|
||||
CXX
|
||||
CXXFLAGS
|
||||
CCC
|
||||
+CCAS
|
||||
CPP
|
||||
XMKMF'
|
||||
|
||||
@@ -1549,6 +1552,7 @@ Some influential environment variables:
|
||||
you have headers in a nonstandard directory <include dir>
|
||||
CXX C++ compiler command
|
||||
CXXFLAGS C++ compiler flags
|
||||
+ CCAS Assembler command
|
||||
CPP C preprocessor
|
||||
XMKMF Path to xmkmf, Makefile generator for X Window System
|
||||
|
||||
@@ -4075,6 +4079,108 @@ cat >>confdefs.h <<_ACEOF
|
||||
_ACEOF
|
||||
|
||||
|
||||
+
|
||||
+if test -n "$ac_tool_prefix"; then
|
||||
+ for ac_prog in clang gas as
|
||||
+ do
|
||||
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
|
||||
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||||
+if ${ac_cv_prog_CCAS+:} false; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ if test -n "$CCAS"; then
|
||||
+ ac_cv_prog_CCAS="$CCAS" # Let the user override the test.
|
||||
+else
|
||||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
+for as_dir in $PATH
|
||||
+do
|
||||
+ IFS=$as_save_IFS
|
||||
+ test -z "$as_dir" && as_dir=.
|
||||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
+ ac_cv_prog_CCAS="$ac_tool_prefix$ac_prog"
|
||||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
+ break 2
|
||||
+ fi
|
||||
+done
|
||||
+ done
|
||||
+IFS=$as_save_IFS
|
||||
+
|
||||
+fi
|
||||
+fi
|
||||
+CCAS=$ac_cv_prog_CCAS
|
||||
+if test -n "$CCAS"; then
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CCAS" >&5
|
||||
+$as_echo "$CCAS" >&6; }
|
||||
+else
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
+$as_echo "no" >&6; }
|
||||
+fi
|
||||
+
|
||||
+
|
||||
+ test -n "$CCAS" && break
|
||||
+ done
|
||||
+fi
|
||||
+if test -z "$CCAS"; then
|
||||
+ ac_ct_CCAS=$CCAS
|
||||
+ for ac_prog in clang gas as
|
||||
+do
|
||||
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
|
||||
+set dummy $ac_prog; ac_word=$2
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
||||
+$as_echo_n "checking for $ac_word... " >&6; }
|
||||
+if ${ac_cv_prog_ac_ct_CCAS+:} false; then :
|
||||
+ $as_echo_n "(cached) " >&6
|
||||
+else
|
||||
+ if test -n "$ac_ct_CCAS"; then
|
||||
+ ac_cv_prog_ac_ct_CCAS="$ac_ct_CCAS" # Let the user override the test.
|
||||
+else
|
||||
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
||||
+for as_dir in $PATH
|
||||
+do
|
||||
+ IFS=$as_save_IFS
|
||||
+ test -z "$as_dir" && as_dir=.
|
||||
+ for ac_exec_ext in '' $ac_executable_extensions; do
|
||||
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
||||
+ ac_cv_prog_ac_ct_CCAS="$ac_prog"
|
||||
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
||||
+ break 2
|
||||
+ fi
|
||||
+done
|
||||
+ done
|
||||
+IFS=$as_save_IFS
|
||||
+
|
||||
+fi
|
||||
+fi
|
||||
+ac_ct_CCAS=$ac_cv_prog_ac_ct_CCAS
|
||||
+if test -n "$ac_ct_CCAS"; then
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CCAS" >&5
|
||||
+$as_echo "$ac_ct_CCAS" >&6; }
|
||||
+else
|
||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
+$as_echo "no" >&6; }
|
||||
+fi
|
||||
+
|
||||
+
|
||||
+ test -n "$ac_ct_CCAS" && break
|
||||
+done
|
||||
+
|
||||
+ if test "x$ac_ct_CCAS" = x; then
|
||||
+ CCAS=""$CC""
|
||||
+ else
|
||||
+ case $cross_compiling:$ac_tool_warned in
|
||||
+yes:)
|
||||
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
||||
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
||||
+ac_tool_warned=yes ;;
|
||||
+esac
|
||||
+ CCAS=$ac_ct_CCAS
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
+
|
||||
case $host in
|
||||
*-darwin*)
|
||||
if test "x$enable_win64" = "xyes"
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index c93cd08..760f325 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -126,6 +126,10 @@ dnl We can't use AC_PROG_CPP for winegcc, it uses by default $(CC) -E
|
||||
AC_CHECK_TOOL(CPPBIN,cpp,cpp)
|
||||
AC_DEFINE_UNQUOTED(EXEEXT,["$ac_exeext"],[Define to the file extension for executables.])
|
||||
|
||||
+dnl Analogous to AM_PROG_AS
|
||||
+AC_ARG_VAR([CCAS],[Assembler command])
|
||||
+AC_CHECK_TOOLS(CCAS,[clang gas as],["$CC"])
|
||||
+
|
||||
case $host in
|
||||
*-darwin*)
|
||||
if test "x$enable_win64" = "xyes"
|
||||
diff --git a/tools/winebuild/Makefile.in b/tools/winebuild/Makefile.in
|
||||
index 2017129..3fe47a3 100644
|
||||
--- a/tools/winebuild/Makefile.in
|
||||
+++ b/tools/winebuild/Makefile.in
|
||||
@@ -1,4 +1,7 @@
|
||||
-DEFS = -D__WINESRC__ $(EXTRADEFS)
|
||||
+DEFS = \
|
||||
+ -DCCAS="\"@CCAS@\"" \
|
||||
+ -D__WINESRC__ \
|
||||
+ $(EXTRADEFS)
|
||||
|
||||
PROGRAMS = winebuild$(EXEEXT)
|
||||
MANPAGE = winebuild.man
|
||||
diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
|
||||
index 262ff3a..1c5f918 100644
|
||||
--- a/tools/winebuild/utils.c
|
||||
+++ b/tools/winebuild/utils.c
|
||||
@@ -352,6 +352,18 @@ struct strarray *get_as_command(void)
|
||||
static int as_is_clang = 0;
|
||||
struct strarray *args = strarray_init();
|
||||
|
||||
+ if (!as_command && strlen( CCAS ))
|
||||
+ {
|
||||
+ struct stat st;
|
||||
+
|
||||
+ if (!stat( CCAS, &st ))
|
||||
+ as_command = CCAS;
|
||||
+ else
|
||||
+ as_command = find_tool( CCAS, NULL );
|
||||
+
|
||||
+ if (as_command && strstr( as_command, "clang" )) as_is_clang = 1;
|
||||
+ }
|
||||
+
|
||||
if (!as_command)
|
||||
{
|
||||
as_command = find_tool( "clang", NULL );
|
||||
--
|
||||
1.8.1.2
|
||||
|
@ -1,59 +0,0 @@
|
||||
http://bugs.gentoo.org/260726
|
||||
|
||||
diff --git a/tools/winebuild/main.c b/tools/winebuild/main.c
|
||||
index 16b4165..5c77267 100644
|
||||
--- a/tools/winebuild/main.c
|
||||
+++ b/tools/winebuild/main.c
|
||||
@@ -48,10 +48,13 @@ int link_ext_symbols = 0;
|
||||
int force_pointer_size = 0;
|
||||
int unwind_tables = 0;
|
||||
|
||||
+#undef FORCE_POINTER_SIZE
|
||||
#ifdef __i386__
|
||||
enum target_cpu target_cpu = CPU_x86;
|
||||
+#define FORCE_POINTER_SIZE
|
||||
#elif defined(__x86_64__)
|
||||
enum target_cpu target_cpu = CPU_x86_64;
|
||||
+#define FORCE_POINTER_SIZE
|
||||
#elif defined(__powerpc__)
|
||||
enum target_cpu target_cpu = CPU_POWERPC;
|
||||
#elif defined(__arm__)
|
||||
@@ -611,6 +614,10 @@ int main(int argc, char **argv)
|
||||
signal( SIGTERM, exit_on_signal );
|
||||
signal( SIGINT, exit_on_signal );
|
||||
|
||||
+#ifdef FORCE_POINTER_SIZE
|
||||
+ force_pointer_size = sizeof(size_t);
|
||||
+#endif
|
||||
+
|
||||
output_file = stdout;
|
||||
argv = parse_options( argc, argv, spec );
|
||||
|
||||
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c
|
||||
index 06aa200..c44d2e3 100644
|
||||
--- a/tools/winegcc/winegcc.c
|
||||
+++ b/tools/winegcc/winegcc.c
|
||||
@@ -213,10 +213,13 @@ struct options
|
||||
strarray* files;
|
||||
};
|
||||
|
||||
+#undef FORCE_POINTER_SIZE
|
||||
#ifdef __i386__
|
||||
static const enum target_cpu build_cpu = CPU_x86;
|
||||
+#define FORCE_POINTER_SIZE
|
||||
#elif defined(__x86_64__)
|
||||
static const enum target_cpu build_cpu = CPU_x86_64;
|
||||
+#define FORCE_POINTER_SIZE
|
||||
#elif defined(__powerpc__)
|
||||
static const enum target_cpu build_cpu = CPU_POWERPC;
|
||||
#elif defined(__arm__)
|
||||
@@ -1258,6 +1261,9 @@ int main(int argc, char **argv)
|
||||
opts.linker_args = strarray_alloc();
|
||||
opts.compiler_args = strarray_alloc();
|
||||
opts.winebuild_args = strarray_alloc();
|
||||
+#ifdef FORCE_POINTER_SIZE
|
||||
+ opts.force_pointer_size = sizeof(size_t);
|
||||
+#endif
|
||||
|
||||
/* determine the processor type */
|
||||
if (strendswith(argv[0], "winecpp")) opts.processor = proc_cpp;
|
@ -1,45 +0,0 @@
|
||||
commit ce4b6451aabbe83809c7483c748cfa009cc090d6
|
||||
Author: Alexandre Julliard <julliard@winehq.org>
|
||||
Date: Fri May 10 22:01:44 2013 +0200
|
||||
|
||||
configure: Add explicit install targets in libs/wine for make_makefiles.
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index d4c1f8e..ef38bfd 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -16379,7 +16379,7 @@ wine_fn_config_makefile documentation enable_documentation
|
||||
wine_fn_config_makefile fonts enable_fonts install-lib
|
||||
wine_fn_config_makefile include enable_include install-dev
|
||||
wine_fn_config_makefile libs/port enable_libs_port
|
||||
-wine_fn_config_makefile libs/wine enable_libs_wine
|
||||
+wine_fn_config_makefile libs/wine enable_libs_wine install-dev,install-lib
|
||||
wine_fn_config_makefile libs/wpp enable_libs_wpp
|
||||
wine_fn_config_makefile loader enable_loader install-lib,manpage
|
||||
wine_fn_config_program aspnet_regiis enable_aspnet_regiis install
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 6dd2348..b44673e 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3173,7 +3173,7 @@ WINE_CONFIG_MAKEFILE([documentation])
|
||||
WINE_CONFIG_MAKEFILE([fonts],,[install-lib])
|
||||
WINE_CONFIG_MAKEFILE([include],,[install-dev])
|
||||
WINE_CONFIG_MAKEFILE([libs/port])
|
||||
-WINE_CONFIG_MAKEFILE([libs/wine])
|
||||
+WINE_CONFIG_MAKEFILE([libs/wine],,[install-dev,install-lib])
|
||||
WINE_CONFIG_MAKEFILE([libs/wpp])
|
||||
WINE_CONFIG_MAKEFILE([loader],,[install-lib,manpage])
|
||||
WINE_CONFIG_PROGRAM(aspnet_regiis,,[install])
|
||||
diff --git a/libs/wine/Makefile.in b/libs/wine/Makefile.in
|
||||
index b8dc385..7de7799 100644
|
||||
--- a/libs/wine/Makefile.in
|
||||
+++ b/libs/wine/Makefile.in
|
||||
@@ -111,4 +111,8 @@ version.c: dummy
|
||||
$(RELPATH):
|
||||
@cd $(TOOLSDIR)/tools && $(MAKE) relpath$(TOOLSEXT)
|
||||
|
||||
+# Make sure that make_makefiles sees the install rules
|
||||
+install install-lib::
|
||||
+install install-dev::
|
||||
+
|
||||
@LIBWINE_RULES@
|
@ -1,44 +0,0 @@
|
||||
From 9fb3de8e9268e8e81128fc77328495567140e082 Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Rostovtsev <tetromino@gentoo.org>
|
||||
Date: Sat, 25 May 2013 23:57:04 -0400
|
||||
Subject: [PATCH] configure, secur32: In gnutls-3.2, gnutls_mac_get_key_size()
|
||||
moved to crypto.h
|
||||
|
||||
Based on a patch by Ben Kohler <bkohler@gmail.com>
|
||||
|
||||
https://bugs.gentoo.org/show_bug.cgi?id=471077
|
||||
http://bugs.winehq.org/show_bug.cgi?id=33649
|
||||
---
|
||||
configure.ac | 3 ++-
|
||||
dlls/secur32/schannel_gnutls.c | 1 +
|
||||
2 files changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 1941be1..2c10734 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1344,7 +1344,8 @@ then
|
||||
ac_save_CPPFLAGS="$CPPFLAGS"
|
||||
WINE_PACKAGE_FLAGS(GNUTLS,[gnutls])
|
||||
AC_CHECK_HEADER(gnutls/gnutls.h,
|
||||
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <gnutls/gnutls.h>]], [[static typeof(gnutls_mac_get_key_size) *func; if (func) return 0;]])],
|
||||
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <gnutls/gnutls.h>
|
||||
+#include <gnutls/crypto.h>]], [[static typeof(gnutls_mac_get_key_size) *func; if (func) return 0;]])],
|
||||
[WINE_CHECK_SONAME(gnutls,gnutls_global_init,,[GNUTLS_CFLAGS=""],[$GNUTLS_LIBS])])],
|
||||
[GNUTLS_CFLAGS=""])
|
||||
CPPFLAGS="$ac_save_CPPFLAGS"
|
||||
diff --git a/dlls/secur32/schannel_gnutls.c b/dlls/secur32/schannel_gnutls.c
|
||||
index 70b8276..cbe64e8 100644
|
||||
--- a/dlls/secur32/schannel_gnutls.c
|
||||
+++ b/dlls/secur32/schannel_gnutls.c
|
||||
@@ -25,6 +25,7 @@
|
||||
#include <stdarg.h>
|
||||
#ifdef SONAME_LIBGNUTLS
|
||||
#include <gnutls/gnutls.h>
|
||||
+#include <gnutls/crypto.h>
|
||||
#endif
|
||||
|
||||
#include "windef.h"
|
||||
--
|
||||
1.8.2.1
|
||||
|
@ -1,21 +0,0 @@
|
||||
Avoid "undefined reference to `memset'" error when building with
|
||||
USE=custom-cflags and -O3 in CFLAGS with gcc-4.8.
|
||||
|
||||
See:
|
||||
|
||||
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888
|
||||
http://bugs.winehq.org/show_bug.cgi?id=33521
|
||||
https://bugs.gentoo.org/show_bug.cgi?id=480508
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index d8033cf..fe7cc7d 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1767,6 +1767,7 @@ then
|
||||
|
||||
dnl Check for some compiler flags
|
||||
WINE_TRY_CFLAGS([-fno-builtin],[AC_SUBST(BUILTINFLAG,"-fno-builtin")])
|
||||
+ WINE_TRY_CFLAGS([-fno-tree-loop-distribute-patterns])
|
||||
WINE_TRY_CFLAGS([-fno-strict-aliasing])
|
||||
dnl clang needs to be told to fail on unknown options
|
||||
saved_CFLAGS=$CFLAGS
|
@ -1,38 +0,0 @@
|
||||
From 6932b9a17c4f64c13f7060895d46334bc7022430 Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Rostovtsev <tetromino@gentoo.org>
|
||||
Date: Tue, 7 Aug 2012 01:29:01 -0400
|
||||
Subject: [PATCH] Do not check for libGL symbols when checking libOSMesa
|
||||
|
||||
If mesa had been built with shared glapi, glAccum is not available in
|
||||
libOSMesa without explicitly linking to libGL. In addition, in
|
||||
mesa-8.0.x and earlier, libOSMesa needs to be explicitly linked to
|
||||
libglapi if mesa was built with shared glapi, see
|
||||
https://bugs.gentoo.org/show_bug.cgi?id=399813
|
||||
And in mesa-8.1.x, libOSMesa in addition needs libdl, libpthread, and
|
||||
libstdc++, see https://bugs.gentoo.org/show_bug.cgi?id=431832
|
||||
---
|
||||
configure.ac | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index de807d2..a2e8684 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1233,7 +1233,13 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c
|
||||
|
||||
if test "x$with_osmesa" != "xno"
|
||||
then
|
||||
- WINE_CHECK_SONAME(OSMesa,glAccum,,,[$X_LIBS -lm $X_EXTRA_LIBS])
|
||||
+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[$X_LIBS -lm $X_EXTRA_LIBS])
|
||||
+ if test "x$ac_cv_lib_soname_OSMesa" = "x"; then
|
||||
+ osmesa_save_CC=$CC
|
||||
+ CC=$CXX
|
||||
+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[-lglapi -lpthread -ldl $X_LIBS -lm $X_EXTRA_LIBS])
|
||||
+ CC=$osmesa_save_CC
|
||||
+ fi
|
||||
WINE_NOTICE_WITH(osmesa,[test "x$ac_cv_lib_soname_OSMesa" = "x"],
|
||||
[libOSMesa ${notice_platform}development files not found (or too old), OpenGL rendering in bitmaps won't be supported.])
|
||||
fi
|
||||
--
|
||||
1.8.5.3
|
||||
|
@ -1,38 +0,0 @@
|
||||
From b7eb1ff48dd1210aa3e1002afc503d5df75d50b9 Mon Sep 17 00:00:00 2001
|
||||
From: Alexandre Rostovtsev <tetromino@gentoo.org>
|
||||
Date: Tue, 7 Aug 2012 01:29:01 -0400
|
||||
Subject: [PATCH] Do not check for libGL symbols when checking libOSMesa
|
||||
|
||||
If mesa had been built with shared glapi, glAccum is not available in
|
||||
libOSMesa without explicitly linking to libGL. In addition, in
|
||||
mesa-8.0.x and earlier, libOSMesa needs to be explicitly linked to
|
||||
libglapi if mesa was built with shared glapi, see
|
||||
https://bugs.gentoo.org/show_bug.cgi?id=399813
|
||||
And in mesa-8.1.x, libOSMesa in addition needs libdl, libpthread, and
|
||||
libstdc++, see https://bugs.gentoo.org/show_bug.cgi?id=431832
|
||||
---
|
||||
configure.ac | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 66b4dd6..0303d87 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1213,7 +1213,13 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c
|
||||
|
||||
if test "x$with_osmesa" != "xno"
|
||||
then
|
||||
- WINE_CHECK_SONAME(OSMesa,glAccum,,,[$X_LIBS $XLIB -lm $X_EXTRA_LIBS])
|
||||
+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[$X_LIBS $XLIB -lm $X_EXTRA_LIBS])
|
||||
+ if test "x$ac_cv_lib_soname_OSMesa" = "x"; then
|
||||
+ osmesa_save_CC=$CC
|
||||
+ CC=$CXX
|
||||
+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[-lglapi -lpthread -ldl $X_LIBS $XLIB -lm $X_EXTRA_LIBS])
|
||||
+ CC=$osmesa_save_CC
|
||||
+ fi
|
||||
WINE_NOTICE_WITH(osmesa,[test "x$ac_cv_lib_soname_OSMesa" = "x"],
|
||||
[libOSMesa ${notice_platform}development files not found (or too old), OpenGL rendering in bitmaps won't be supported.])
|
||||
fi
|
||||
--
|
||||
1.8.3.2
|
||||
|
@ -1,629 +0,0 @@
|
||||
From 9e081cd4a04e3326d4927aa082695f15432590e2 Mon Sep 17 00:00:00 2001
|
||||
From: Maarten Lankhorst <maarten.lankhorst@canonical.com>
|
||||
Date: Thu, 14 Aug 2014 11:49:20 +0200
|
||||
Subject: [PATCH] TESTING -- override pthreads to fix gstreamer v4
|
||||
|
||||
I believe the code is ready and will work properly now in all cases.
|
||||
but please test before cherry picking this patch, and report
|
||||
success or failure to me please.
|
||||
|
||||
Changes since v1:
|
||||
- Call pthread_yield to make sure that we link against libpthread.
|
||||
This fixes the build on saucy.
|
||||
Changes since v2:
|
||||
- Set thread_data->detached before creating the thread to prevent
|
||||
a race condition.
|
||||
Changes since v3:
|
||||
- Set thread_data->detached CORRECTLY. Fix a small race between
|
||||
thread creation and pthread_detach.
|
||||
---
|
||||
dlls/ntdll/ntdll_misc.h | 3 +
|
||||
dlls/ntdll/thread.c | 307 +++++++++++++++++++++++++++++++++++++--
|
||||
dlls/winegstreamer/glibthread.c | 13 ++
|
||||
libs/wine/loader.c | 7 +
|
||||
libs/wine/wine.map | 6 +
|
||||
loader/Makefile.in | 2 +-
|
||||
loader/main.c | 41 +++++
|
||||
7 files changed, 362 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/ntdll_misc.h b/dlls/ntdll/ntdll_misc.h
|
||||
index 4370084..1af819b 100644
|
||||
--- a/dlls/ntdll/ntdll_misc.h
|
||||
+++ b/dlls/ntdll/ntdll_misc.h
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "winnt.h"
|
||||
#include "winternl.h"
|
||||
#include "wine/server.h"
|
||||
+#include "wine/list.h"
|
||||
|
||||
#define MAX_NT_PATH_LENGTH 277
|
||||
|
||||
@@ -235,6 +236,8 @@ struct ntdll_thread_data
|
||||
WINE_VM86_TEB_INFO vm86; /* 1fc vm86 private data */
|
||||
void *exit_frame; /* 204 exit frame pointer */
|
||||
#endif
|
||||
+ struct list entry;
|
||||
+ BOOL detached;
|
||||
};
|
||||
|
||||
static inline struct ntdll_thread_data *ntdll_get_thread_data(void)
|
||||
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c
|
||||
index c8461b0..8d5470e 100644
|
||||
--- a/dlls/ntdll/thread.c
|
||||
+++ b/dlls/ntdll/thread.c
|
||||
@@ -33,6 +33,7 @@
|
||||
#ifdef HAVE_SYS_SYSCALL_H
|
||||
#include <sys/syscall.h>
|
||||
#endif
|
||||
+#include <errno.h>
|
||||
|
||||
#define NONAMELESSUNION
|
||||
#include "ntstatus.h"
|
||||
@@ -58,6 +59,7 @@ struct startup_info
|
||||
TEB *teb;
|
||||
PRTL_THREAD_START_ROUTINE entry_point;
|
||||
void *entry_arg;
|
||||
+ BOOL native_thread;
|
||||
};
|
||||
|
||||
static PEB *peb;
|
||||
@@ -202,6 +204,78 @@ static ULONG get_dyld_image_info_addr(void)
|
||||
}
|
||||
#endif /* __APPLE__ */
|
||||
|
||||
+#ifdef __linux__
|
||||
+extern typeof(pthread_create) *__glob_pthread_create, *call_pthread_create;
|
||||
+extern typeof(pthread_join) *__glob_pthread_join, *call_pthread_join;
|
||||
+extern typeof(pthread_detach) *__glob_pthread_detach, *call_pthread_detach;
|
||||
+
|
||||
+static typeof(pthread_create) __hook_pthread_create;
|
||||
+static typeof(pthread_join) __hook_pthread_join;
|
||||
+static typeof(pthread_detach) __hook_pthread_detach;
|
||||
+
|
||||
+static pthread_mutex_t thread_lock;
|
||||
+
|
||||
+static void thread_wrap_init(void)
|
||||
+{
|
||||
+ pthread_mutexattr_t attr;
|
||||
+ pthread_mutexattr_init(&attr);
|
||||
+ pthread_mutexattr_setrobust(&attr, PTHREAD_MUTEX_ROBUST);
|
||||
+ pthread_mutex_init(&thread_lock, &attr);
|
||||
+ pthread_mutexattr_destroy(&attr);
|
||||
+
|
||||
+ call_pthread_create = __hook_pthread_create;
|
||||
+ call_pthread_join = __hook_pthread_join;
|
||||
+ call_pthread_detach = __hook_pthread_detach;
|
||||
+}
|
||||
+
|
||||
+static TEB *dead_teb;
|
||||
+static struct list active_list = LIST_INIT(active_list);
|
||||
+
|
||||
+static void take_thread_lock(void)
|
||||
+{
|
||||
+ int ret = pthread_mutex_lock(&thread_lock);
|
||||
+ if (ret == EOWNERDEAD)
|
||||
+ pthread_mutex_consistent(&thread_lock);
|
||||
+}
|
||||
+
|
||||
+static void detach_thread_unlock(TEB *own_teb)
|
||||
+{
|
||||
+ struct ntdll_thread_data *thread_data;
|
||||
+ TEB *teb = dead_teb;
|
||||
+
|
||||
+ dead_teb = own_teb;
|
||||
+
|
||||
+ pthread_mutex_unlock(&thread_lock);
|
||||
+ if (!teb)
|
||||
+ return;
|
||||
+
|
||||
+ thread_data = (struct ntdll_thread_data *)teb->SpareBytes1;
|
||||
+ __glob_pthread_join(thread_data->pthread_id, NULL);
|
||||
+ signal_free_thread(teb);
|
||||
+}
|
||||
+
|
||||
+static void reap_thread(TEB *teb)
|
||||
+{
|
||||
+ struct ntdll_thread_data *thread_data = (struct ntdll_thread_data *)teb->SpareBytes1;
|
||||
+ take_thread_lock();
|
||||
+ if (thread_data->detached)
|
||||
+ detach_thread_unlock(teb);
|
||||
+ else {
|
||||
+ /*
|
||||
+ * Do not unlock, wait until the thread is thoroughly dead.
|
||||
+ * This prevents a race condition where detach is called
|
||||
+ * after the thread has not finished dying yet.
|
||||
+ */
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+#else
|
||||
+#define __glob_pthread_create pthread_create
|
||||
+#define __glob_pthread_join pthread_join
|
||||
+#define __glob_pthread_detach pthread_detach
|
||||
+#define thread_wrap_init()
|
||||
+#endif
|
||||
+
|
||||
/***********************************************************************
|
||||
* thread_init
|
||||
*
|
||||
@@ -220,6 +294,7 @@ HANDLE thread_init(void)
|
||||
struct ntdll_thread_data *thread_data;
|
||||
static struct debug_info debug_info; /* debug info for initial thread */
|
||||
|
||||
+ thread_wrap_init();
|
||||
virtual_init();
|
||||
|
||||
/* reserve space for shared user data */
|
||||
@@ -349,14 +424,12 @@ void terminate_thread( int status )
|
||||
pthread_exit( UIntToPtr(status) );
|
||||
}
|
||||
|
||||
-
|
||||
-/***********************************************************************
|
||||
- * exit_thread
|
||||
- */
|
||||
-void exit_thread( int status )
|
||||
+static void exit_thread_common( int status )
|
||||
{
|
||||
+#ifndef __linux__
|
||||
static void *prev_teb;
|
||||
TEB *teb;
|
||||
+#endif
|
||||
|
||||
if (status) /* send the exit code to the server (0 is already the default) */
|
||||
{
|
||||
@@ -380,24 +453,177 @@ void exit_thread( int status )
|
||||
|
||||
pthread_sigmask( SIG_BLOCK, &server_block_set, NULL );
|
||||
|
||||
+#ifndef __linux__
|
||||
if ((teb = interlocked_xchg_ptr( &prev_teb, NtCurrentTeb() )))
|
||||
{
|
||||
struct ntdll_thread_data *thread_data = (struct ntdll_thread_data *)teb->SpareBytes1;
|
||||
|
||||
if (thread_data->pthread_id)
|
||||
{
|
||||
- pthread_join( thread_data->pthread_id, NULL );
|
||||
+ __glob_pthread_join( thread_data->pthread_id, NULL );
|
||||
signal_free_thread( teb );
|
||||
}
|
||||
}
|
||||
+#else
|
||||
+ reap_thread(NtCurrentTeb());
|
||||
+#endif
|
||||
|
||||
close( ntdll_get_thread_data()->wait_fd[0] );
|
||||
close( ntdll_get_thread_data()->wait_fd[1] );
|
||||
close( ntdll_get_thread_data()->reply_fd );
|
||||
close( ntdll_get_thread_data()->request_fd );
|
||||
+}
|
||||
+
|
||||
+void exit_thread( int status )
|
||||
+{
|
||||
+ exit_thread_common(status);
|
||||
pthread_exit( UIntToPtr(status) );
|
||||
}
|
||||
|
||||
+#ifdef __linux__
|
||||
+
|
||||
+struct unix_arg {
|
||||
+ void *(*start)(void *);
|
||||
+ void *arg;
|
||||
+};
|
||||
+
|
||||
+/* dummy used for comparison */
|
||||
+static DWORD native_unix_start;
|
||||
+
|
||||
+static void call_native_cleanup(void *arg)
|
||||
+{
|
||||
+ exit_thread_common(0);
|
||||
+}
|
||||
+
|
||||
+static int
|
||||
+__hook_pthread_create(pthread_t *thread, const pthread_attr_t *attr,
|
||||
+ void *(*start_routine) (void *), void *parm)
|
||||
+{
|
||||
+ NTSTATUS ret;
|
||||
+ pthread_t tid;
|
||||
+ size_t stack = 8 * 1024 * 1024;
|
||||
+ struct unix_arg arg;
|
||||
+ arg.start = start_routine;
|
||||
+ arg.arg = parm;
|
||||
+
|
||||
+ if (!thread)
|
||||
+ thread = &tid;
|
||||
+
|
||||
+ TRACE("Overriding thread creation!\n");
|
||||
+ if (attr) {
|
||||
+ static int once;
|
||||
+ if (!once++)
|
||||
+ FIXME("most thread attributes ignored!\n");
|
||||
+ else
|
||||
+ WARN("most thread attributes ignored!\n");
|
||||
+
|
||||
+ pthread_attr_getstacksize(attr, &stack);
|
||||
+ }
|
||||
+
|
||||
+ ret = RtlCreateUserThread( NtCurrentProcess(), NULL, FALSE, NULL, stack, 0, (void*)&native_unix_start, &arg, NULL, (void*)thread );
|
||||
+ if (ret != STATUS_SUCCESS)
|
||||
+ FIXME("ret: %08x\n", ret);
|
||||
+ switch (ret) {
|
||||
+ case STATUS_SUCCESS:
|
||||
+ TRACE("created thread %lx for %p/%p\n", *thread, start_routine, parm);
|
||||
+ return 0;
|
||||
+ case STATUS_NO_MEMORY:
|
||||
+ return ENOMEM;
|
||||
+ case STATUS_TOO_MANY_OPENED_FILES:
|
||||
+ return EMFILE;
|
||||
+ default:
|
||||
+ ERR("Unhandled ntstatus %08x\n", ret);
|
||||
+ return ENOMEM;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static int __hook_pthread_detach(pthread_t thread)
|
||||
+{
|
||||
+ struct ntdll_thread_data *thread_data;
|
||||
+ TEB *teb = NULL;
|
||||
+
|
||||
+ if (pthread_equal(thread, pthread_self())) {
|
||||
+ TRACE("Detached self: %lx\n", pthread_self());
|
||||
+ ntdll_get_thread_data()->detached = 1;
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ take_thread_lock();
|
||||
+ LIST_FOR_EACH_ENTRY(thread_data, &active_list, typeof(*thread_data), entry) {
|
||||
+ if (pthread_equal(thread_data->pthread_id, thread)) {
|
||||
+ teb = CONTAINING_RECORD(thread_data, typeof(*teb), SpareBytes1);
|
||||
+
|
||||
+ list_remove(&thread_data->entry);
|
||||
+ if (!pthread_tryjoin_np(thread, NULL)) {
|
||||
+ detach_thread_unlock(NULL);
|
||||
+ TRACE("Thread %lx was dead, cleaning up\n", thread);
|
||||
+ signal_free_thread(teb);
|
||||
+ return 0;
|
||||
+ }
|
||||
+ thread_data->detached = 1;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+ detach_thread_unlock(NULL);
|
||||
+ if (!teb)
|
||||
+ TRACE("Could not find thread %lx to detach\n", thread);
|
||||
+ else
|
||||
+ TRACE("Changed thread %lx to detached\n", thread);
|
||||
+ return teb ? 0 : ESRCH;
|
||||
+}
|
||||
+
|
||||
+static int __hook_pthread_join(pthread_t thread, void **retval)
|
||||
+{
|
||||
+ struct ntdll_thread_data *thread_data, *t2;
|
||||
+ int ret = ESRCH;
|
||||
+
|
||||
+ if (pthread_equal(thread, pthread_self()))
|
||||
+ return EDEADLK;
|
||||
+
|
||||
+ take_thread_lock();
|
||||
+ LIST_FOR_EACH_ENTRY(thread_data, &active_list, typeof(*thread_data), entry) {
|
||||
+ TEB *teb = CONTAINING_RECORD(thread_data, typeof(*teb), SpareBytes1);
|
||||
+
|
||||
+ if (pthread_equal(thread, thread_data->pthread_id)) {
|
||||
+
|
||||
+ ret = pthread_tryjoin_np(thread, retval);
|
||||
+ if (!ret) {
|
||||
+ TRACE("Thread %lx was dead fastpath, cleaning up\n", thread);
|
||||
+ goto free;
|
||||
+ }
|
||||
+ detach_thread_unlock(NULL);
|
||||
+
|
||||
+ ret = __glob_pthread_join(thread, retval);
|
||||
+ if (ret) {
|
||||
+ TRACE("Thread %lx join failed with %i, ignoring\n", thread, ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ take_thread_lock();
|
||||
+ /* Check if someone else freed the thread yet */
|
||||
+ LIST_FOR_EACH_ENTRY(t2, &active_list, typeof(*thread_data), entry)
|
||||
+ if (t2 == thread_data) {
|
||||
+ TRACE("Cleaning up after successful join\n");
|
||||
+ goto free;
|
||||
+ }
|
||||
+ TRACE("No clean up after successful join, multiple pthread_join's?\n");
|
||||
+ break;
|
||||
+
|
||||
+free:
|
||||
+ list_remove(&thread_data->entry);
|
||||
+ detach_thread_unlock(NULL);
|
||||
+ signal_free_thread(teb);
|
||||
+ return 0;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ detach_thread_unlock(NULL);
|
||||
+ if (ret)
|
||||
+ TRACE("failed with %i\n", ret);
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
|
||||
/***********************************************************************
|
||||
* start_thread
|
||||
@@ -426,9 +652,19 @@ static void start_thread( struct startup_info *info )
|
||||
if (TRACE_ON(relay))
|
||||
DPRINTF( "%04x:Starting thread proc %p (arg=%p)\n", GetCurrentThreadId(), func, arg );
|
||||
|
||||
- call_thread_entry_point( (LPTHREAD_START_ROUTINE)func, arg );
|
||||
-}
|
||||
+#ifdef __linux__
|
||||
+ if (info->native_thread) {
|
||||
+ void *(*start)(void*) = (void*)func;
|
||||
|
||||
+ FIXME("Started native thread %08x\n", GetCurrentThreadId());
|
||||
+ pthread_cleanup_push(call_native_cleanup, NULL);
|
||||
+ pthread_exit(start(arg));
|
||||
+ pthread_cleanup_pop(1);
|
||||
+ return;
|
||||
+ }
|
||||
+#endif
|
||||
+ call_thread_entry_point( (LPTHREAD_START_ROUTINE)func, arg );
|
||||
+}
|
||||
|
||||
/***********************************************************************
|
||||
* RtlCreateUserThread (NTDLL.@)
|
||||
@@ -440,14 +676,13 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *
|
||||
HANDLE *handle_ptr, CLIENT_ID *id )
|
||||
{
|
||||
sigset_t sigset;
|
||||
- pthread_t pthread_id;
|
||||
pthread_attr_t attr;
|
||||
struct ntdll_thread_data *thread_data;
|
||||
struct startup_info *info = NULL;
|
||||
HANDLE handle = 0, actctx = 0;
|
||||
TEB *teb = NULL;
|
||||
DWORD tid = 0;
|
||||
- int request_pipe[2];
|
||||
+ int request_pipe[2], ret;
|
||||
NTSTATUS status;
|
||||
|
||||
if (process != NtCurrentProcess())
|
||||
@@ -472,10 +707,14 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *
|
||||
if (handle_ptr) *handle_ptr = wine_server_ptr_handle( result.create_thread.handle );
|
||||
else NtClose( wine_server_ptr_handle( result.create_thread.handle ));
|
||||
}
|
||||
+ TRACE("CreateThread for other process returns %08x\n", result.create_thread.status);
|
||||
return result.create_thread.status;
|
||||
}
|
||||
|
||||
- if (server_pipe( request_pipe ) == -1) return STATUS_TOO_MANY_OPENED_FILES;
|
||||
+ if (server_pipe( request_pipe ) == -1) {
|
||||
+ TRACE("CreateThread cannot create request pipe: %m\n");
|
||||
+ return STATUS_TOO_MANY_OPENED_FILES;
|
||||
+ }
|
||||
wine_server_send_fd( request_pipe[0] );
|
||||
|
||||
SERVER_START_REQ( new_thread )
|
||||
@@ -496,12 +735,16 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *
|
||||
if (status)
|
||||
{
|
||||
close( request_pipe[1] );
|
||||
+ TRACE("CreateThread server request failed with %08x\n", status);
|
||||
return status;
|
||||
}
|
||||
|
||||
pthread_sigmask( SIG_BLOCK, &server_block_set, &sigset );
|
||||
|
||||
- if ((status = signal_alloc_thread( &teb ))) goto error;
|
||||
+ if ((status = signal_alloc_thread( &teb ))) {
|
||||
+ TRACE("CreateThread signal thread allocation failed with %08x\n", status);
|
||||
+ goto error;
|
||||
+ }
|
||||
|
||||
teb->Peb = NtCurrentTeb()->Peb;
|
||||
teb->ClientId.UniqueProcess = ULongToHandle(GetCurrentProcessId());
|
||||
@@ -524,32 +767,64 @@ NTSTATUS WINAPI RtlCreateUserThread( HANDLE process, const SECURITY_DESCRIPTOR *
|
||||
|
||||
info = (struct startup_info *)(teb + 1);
|
||||
info->teb = teb;
|
||||
- info->entry_point = start;
|
||||
- info->entry_arg = param;
|
||||
+#ifdef __linux__
|
||||
+ info->native_thread = (void*)start == (void*)&native_unix_start;
|
||||
+ if (info->native_thread) {
|
||||
+ struct unix_arg *arg = param;
|
||||
+ info->entry_point = (void*)arg->start;
|
||||
+ info->entry_arg = arg->arg;
|
||||
+ } else
|
||||
+#endif
|
||||
+ {
|
||||
+ info->entry_point = start;
|
||||
+ info->entry_arg = param;
|
||||
+ }
|
||||
|
||||
thread_data = (struct ntdll_thread_data *)teb->SpareBytes1;
|
||||
+#ifdef __linux__
|
||||
+ thread_data->detached = !info->native_thread;
|
||||
+#endif
|
||||
thread_data->request_fd = request_pipe[1];
|
||||
thread_data->reply_fd = -1;
|
||||
thread_data->wait_fd[0] = -1;
|
||||
thread_data->wait_fd[1] = -1;
|
||||
+ thread_data->entry.next = NULL;
|
||||
|
||||
- if ((status = virtual_alloc_thread_stack( teb, stack_reserve, stack_commit ))) goto error;
|
||||
+ if ((status = virtual_alloc_thread_stack( teb, stack_reserve ?: (8 << 20), stack_commit ?: (1 << 20) ))) {
|
||||
+ TRACE("Allocating virtual stack for %p (%li/%li) failed with %08x\n", start, stack_reserve, stack_commit, status);
|
||||
+ goto error;
|
||||
+ }
|
||||
|
||||
pthread_attr_init( &attr );
|
||||
pthread_attr_setstack( &attr, teb->DeallocationStack,
|
||||
(char *)teb->Tib.StackBase - (char *)teb->DeallocationStack );
|
||||
pthread_attr_setscope( &attr, PTHREAD_SCOPE_SYSTEM ); /* force creating a kernel thread */
|
||||
interlocked_xchg_add( &nb_threads, 1 );
|
||||
- if (pthread_create( &pthread_id, &attr, (void * (*)(void *))start_thread, info ))
|
||||
+
|
||||
+ take_thread_lock();
|
||||
+ ret = __glob_pthread_create( &thread_data->pthread_id, &attr, (void * (*)(void *))start_thread, info );
|
||||
+ if (ret)
|
||||
{
|
||||
+ TRACE("pthread create failed with %i/%m\n", ret);
|
||||
interlocked_xchg_add( &nb_threads, -1 );
|
||||
pthread_attr_destroy( &attr );
|
||||
status = STATUS_NO_MEMORY;
|
||||
goto error;
|
||||
}
|
||||
+ if (!thread_data->detached)
|
||||
+ list_add_tail(&active_list, &thread_data->entry);
|
||||
+ detach_thread_unlock(NULL);
|
||||
+
|
||||
pthread_attr_destroy( &attr );
|
||||
pthread_sigmask( SIG_SETMASK, &sigset, NULL );
|
||||
|
||||
+ TRACE("Created thread succesfully, win handle: %04x, pthread: %lx\n", tid, thread_data->pthread_id);
|
||||
+
|
||||
+#ifdef __linux__
|
||||
+ if ((void*)start == (void*)&native_unix_start && id)
|
||||
+ *(pthread_t*)id = thread_data->pthread_id;
|
||||
+ else
|
||||
+#endif
|
||||
if (id) id->UniqueThread = ULongToHandle(tid);
|
||||
if (handle_ptr) *handle_ptr = handle;
|
||||
else NtClose( handle );
|
||||
diff --git a/dlls/winegstreamer/glibthread.c b/dlls/winegstreamer/glibthread.c
|
||||
index 0d829a0..46e22f4 100644
|
||||
--- a/dlls/winegstreamer/glibthread.c
|
||||
+++ b/dlls/winegstreamer/glibthread.c
|
||||
@@ -43,6 +43,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
+#if 0
|
||||
#include "windef.h"
|
||||
#include "winbase.h"
|
||||
#include "winnls.h"
|
||||
@@ -388,3 +389,15 @@ void g_thread_impl_init (void)
|
||||
g_thread_self_tls = TlsAlloc ();
|
||||
g_thread_init(&g_thread_functions_for_glib_use_default);
|
||||
}
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+void g_thread_impl_init (void)
|
||||
+{
|
||||
+ static gboolean beenhere = FALSE;
|
||||
+
|
||||
+ if (!beenhere++)
|
||||
+ g_thread_init(NULL);
|
||||
+}
|
||||
+
|
||||
+#endif
|
||||
diff --git a/libs/wine/loader.c b/libs/wine/loader.c
|
||||
index 7261522..a8c31b9 100644
|
||||
--- a/libs/wine/loader.c
|
||||
+++ b/libs/wine/loader.c
|
||||
@@ -73,6 +73,13 @@ char **__wine_main_argv = NULL;
|
||||
WCHAR **__wine_main_wargv = NULL;
|
||||
char **__wine_main_environ = NULL;
|
||||
|
||||
+#ifdef __linux__
|
||||
+#include <pthread.h>
|
||||
+typeof(pthread_create) *call_pthread_create, *__glob_pthread_create;
|
||||
+typeof(pthread_join) *call_pthread_join, *__glob_pthread_join;
|
||||
+typeof(pthread_detach) *call_pthread_detach, *__glob_pthread_detach;
|
||||
+#endif
|
||||
+
|
||||
struct dll_path_context
|
||||
{
|
||||
unsigned int index; /* current index in the dll path list */
|
||||
diff --git a/libs/wine/wine.map b/libs/wine/wine.map
|
||||
index 2159fac..fb3b951 100644
|
||||
--- a/libs/wine/wine.map
|
||||
+++ b/libs/wine/wine.map
|
||||
@@ -117,6 +117,12 @@ WINE_1.0
|
||||
wine_utf8_mbstowcs;
|
||||
wine_utf8_wcstombs;
|
||||
wine_wctype_table;
|
||||
+ __glob_pthread_create;
|
||||
+ call_pthread_create;
|
||||
+ __glob_pthread_join;
|
||||
+ call_pthread_join;
|
||||
+ __glob_pthread_detach;
|
||||
+ call_pthread_detach;
|
||||
|
||||
local: *;
|
||||
};
|
||||
diff --git a/loader/Makefile.in b/loader/Makefile.in
|
||||
index 95e4798..a18dd02 100644
|
||||
--- a/loader/Makefile.in
|
||||
+++ b/loader/Makefile.in
|
||||
@@ -1,4 +1,4 @@
|
||||
-EXTRALIBS = $(PTHREAD_LIBS)
|
||||
+EXTRALIBS = $(PTHREAD_LIBS) $(DL_LIBS)
|
||||
|
||||
C_SRCS = \
|
||||
main.c \
|
||||
diff --git a/loader/main.c b/loader/main.c
|
||||
index ac67290..76609e1 100644
|
||||
--- a/loader/main.c
|
||||
+++ b/loader/main.c
|
||||
@@ -202,6 +202,45 @@ static int pre_exec(void)
|
||||
|
||||
#endif
|
||||
|
||||
+#ifdef __linux__
|
||||
+
|
||||
+extern typeof(pthread_create) *call_pthread_create, *__glob_pthread_create;
|
||||
+extern typeof(pthread_detach) *call_pthread_detach, *__glob_pthread_detach;
|
||||
+extern typeof(pthread_join) *call_pthread_join, *__glob_pthread_join;
|
||||
+
|
||||
+int pthread_create(pthread_t *thread, const pthread_attr_t *attr,
|
||||
+ void *(*start_routine) (void *), void *arg)
|
||||
+{
|
||||
+ return call_pthread_create(thread, attr, start_routine, arg);
|
||||
+}
|
||||
+
|
||||
+int pthread_detach(pthread_t thread)
|
||||
+{
|
||||
+ return call_pthread_detach(thread);
|
||||
+}
|
||||
+
|
||||
+int pthread_join(pthread_t thread, void **retval)
|
||||
+{
|
||||
+ return call_pthread_join(thread, retval);
|
||||
+}
|
||||
+
|
||||
+static void init_thread_hook(void) {
|
||||
+ call_pthread_create = __glob_pthread_create = dlvsym(RTLD_NEXT, "pthread_create", "GLIBC_2.2.5");
|
||||
+ if (!__glob_pthread_create)
|
||||
+ call_pthread_create = __glob_pthread_create = dlvsym(RTLD_NEXT, "pthread_create", "GLIBC_2.1");
|
||||
+
|
||||
+ call_pthread_detach = __glob_pthread_detach = dlsym(RTLD_NEXT, "pthread_detach");
|
||||
+ call_pthread_join = __glob_pthread_join = dlsym(RTLD_NEXT, "pthread_join");
|
||||
+
|
||||
+ /* Call a function from libpthread to ensure being linked against it */
|
||||
+ pthread_yield();
|
||||
+}
|
||||
+
|
||||
+#else
|
||||
+
|
||||
+#define init_thread_hook()
|
||||
+
|
||||
+#endif
|
||||
|
||||
/**********************************************************************
|
||||
* main
|
||||
@@ -211,6 +250,8 @@ int main( int argc, char *argv[] )
|
||||
char error[1024];
|
||||
int i;
|
||||
|
||||
+ init_thread_hook();
|
||||
+
|
||||
if (!getenv( "WINELOADERNOEXEC" )) /* first time around */
|
||||
{
|
||||
static char noexec[] = "WINELOADERNOEXEC=1";
|
||||
--
|
||||
1.7.6.6.GIT
|
||||
|
@ -1,128 +0,0 @@
|
||||
From 8a8957b4e6c9fe153524a7b1051f3aa1b6b4b402 Mon Sep 17 00:00:00 2001
|
||||
From: Ryan Davis <iconoclasmandheresy@gmail.com>
|
||||
Date: Sat, 16 Nov 2013 00:45:53 -0800
|
||||
Subject: [PATCH 1/2] Apply hcce patch and massager for new wording
|
||||
|
||||
---
|
||||
dlls/crypt32/chain.c | 28 ++++++++++++++++------------
|
||||
1 file changed, 16 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/dlls/crypt32/chain.c b/dlls/crypt32/chain.c
|
||||
index 1a83dee..31d1c53 100644
|
||||
--- a/dlls/crypt32/chain.c
|
||||
+++ b/dlls/crypt32/chain.c
|
||||
@@ -33,7 +33,10 @@ WINE_DECLARE_DEBUG_CHANNEL(chain);
|
||||
|
||||
#define DEFAULT_CYCLE_MODULUS 7
|
||||
|
||||
-static HCERTCHAINENGINE CRYPT_defaultChainEngine;
|
||||
+/* There are two default chain engines which correspond to HCCE_CURRENT_USER and
|
||||
+ * HCCE_LOCAL_MACHINE.
|
||||
+*/
|
||||
+static HCERTCHAINENGINE CRYPT_defaultChainEngine[2] = { NULL, NULL };
|
||||
|
||||
/* This represents a subset of a certificate chain engine: it doesn't include
|
||||
* the "hOther" store described by MSDN, because I'm not sure how that's used.
|
||||
@@ -212,7 +215,7 @@ VOID WINAPI CertFreeCertificateChainEngine(HCERTCHAINENGINE hChainEngine)
|
||||
|
||||
TRACE("(%p)\n", hChainEngine);
|
||||
|
||||
- if (engine && InterlockedDecrement(&engine->ref) == 0)
|
||||
+ if (engine > HCCE_LOCAL_MACHINE && InterlockedDecrement(&engine->ref) == 0)
|
||||
{
|
||||
CertCloseStore(engine->hWorld, 0);
|
||||
CertCloseStore(engine->hRoot, 0);
|
||||
@@ -220,26 +223,28 @@ VOID WINAPI CertFreeCertificateChainEngine(HCERTCHAINENGINE hChainEngine)
|
||||
}
|
||||
}
|
||||
|
||||
-static HCERTCHAINENGINE CRYPT_GetDefaultChainEngine(void)
|
||||
+static HCERTCHAINENGINE CRYPT_GetDefaultChainEngine(HCERTCHAINENGINE h)
|
||||
{
|
||||
- if (!CRYPT_defaultChainEngine)
|
||||
+ if (!CRYPT_defaultChainEngine[(int)h])
|
||||
{
|
||||
CERT_CHAIN_ENGINE_CONFIG config = { 0 };
|
||||
HCERTCHAINENGINE engine;
|
||||
|
||||
config.cbSize = sizeof(config);
|
||||
+ if (h == HCCE_LOCAL_MACHINE)
|
||||
+ config.dwFlags = CERT_CHAIN_USE_LOCAL_MACHINE_STORE;
|
||||
CertCreateCertificateChainEngine(&config, &engine);
|
||||
- InterlockedCompareExchangePointer(&CRYPT_defaultChainEngine, engine,
|
||||
+ InterlockedCompareExchangePointer(&CRYPT_defaultChainEngine[(int)h], engine,
|
||||
NULL);
|
||||
- if (CRYPT_defaultChainEngine != engine)
|
||||
+ if (CRYPT_defaultChainEngine[(int)h] != engine)
|
||||
CertFreeCertificateChainEngine(engine);
|
||||
}
|
||||
- return CRYPT_defaultChainEngine;
|
||||
+ return CRYPT_defaultChainEngine[(int)h];
|
||||
}
|
||||
|
||||
-void default_chain_engine_free(void)
|
||||
+void default_chain_engine_free(HCERTCHAINENGINE h)
|
||||
{
|
||||
- CertFreeCertificateChainEngine(CRYPT_defaultChainEngine);
|
||||
+ CertFreeCertificateChainEngine(CRYPT_defaultChainEngine[(int)h]);
|
||||
}
|
||||
|
||||
typedef struct _CertificateChain
|
||||
@@ -2886,11 +2891,10 @@ BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE hChainEngine,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
- if (!engine)
|
||||
- engine = CRYPT_GetDefaultChainEngine();
|
||||
+ if (engine <= HCCE_LOCAL_MACHINE)
|
||||
+ engine = CRYPT_GetDefaultChainEngine(engine);
|
||||
if (TRACE_ON(chain))
|
||||
dump_chain_para(pChainPara);
|
||||
- /* FIXME: what about HCCE_LOCAL_MACHINE? */
|
||||
ret = CRYPT_BuildCandidateChainFromCert(engine, pCertContext, pTime,
|
||||
hAdditionalStore, dwFlags, &chain);
|
||||
if (ret)
|
||||
--
|
||||
1.8.4.3
|
||||
|
||||
|
||||
From df10036a07e90f2c75c4d54d8ec462e24e314bae Mon Sep 17 00:00:00 2001
|
||||
From: Ryan Davis <iconoclasmandheresy@gmail.com>
|
||||
Date: Sat, 16 Nov 2013 23:53:49 -0800
|
||||
Subject: [PATCH 2/2] HCCE patch kinda.
|
||||
|
||||
---
|
||||
dlls/crypt32/crypt32_private.h | 2 +-
|
||||
dlls/crypt32/main.c | 3 ++-
|
||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/crypt32/crypt32_private.h b/dlls/crypt32/crypt32_private.h
|
||||
index 53e0834..6a4d819 100644
|
||||
--- a/dlls/crypt32/crypt32_private.h
|
||||
+++ b/dlls/crypt32/crypt32_private.h
|
||||
@@ -157,7 +157,7 @@ void crypt_oid_init(void) DECLSPEC_HIDDEN;
|
||||
void crypt_oid_free(void) DECLSPEC_HIDDEN;
|
||||
void crypt_sip_free(void) DECLSPEC_HIDDEN;
|
||||
void root_store_free(void) DECLSPEC_HIDDEN;
|
||||
-void default_chain_engine_free(void) DECLSPEC_HIDDEN;
|
||||
+void default_chain_engine_free(HCERTCHAINENGINE) DECLSPEC_HIDDEN;
|
||||
|
||||
/* (Internal) certificate store types and functions */
|
||||
struct WINE_CRYPTCERTSTORE;
|
||||
diff --git a/dlls/crypt32/main.c b/dlls/crypt32/main.c
|
||||
index c4f6c78..2afb702 100644
|
||||
--- a/dlls/crypt32/main.c
|
||||
+++ b/dlls/crypt32/main.c
|
||||
@@ -50,7 +50,8 @@ BOOL WINAPI DllMain(HINSTANCE hInst, DWORD fdwReason, PVOID pvReserved)
|
||||
crypt_oid_free();
|
||||
crypt_sip_free();
|
||||
root_store_free();
|
||||
- default_chain_engine_free();
|
||||
+ default_chain_engine_free(HCCE_CURRENT_USER);
|
||||
+ default_chain_engine_free(HCCE_LOCAL_MACHINE);
|
||||
if (hDefProv) CryptReleaseContext(hDefProv, 0);
|
||||
break;
|
||||
}
|
||||
--
|
||||
1.8.4.3
|
||||
|
@ -1,496 +0,0 @@
|
||||
# Copyright 1999-2014 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/app-emulation/wine/wine-1.7.29.ebuild,v 1.1 2014/10/25 20:37:44 ryao Exp $
|
||||
|
||||
EAPI="5"
|
||||
|
||||
AUTOTOOLS_AUTORECONF=1
|
||||
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
|
||||
PLOCALE_BACKUP="en"
|
||||
|
||||
inherit autotools-utils eutils fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx
|
||||
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
EGIT_REPO_URI="git://source.winehq.org/git/wine.git"
|
||||
inherit git-2
|
||||
SRC_URI=""
|
||||
#KEYWORDS=""
|
||||
else
|
||||
MY_P="${PN}-${PV/_/-}"
|
||||
SRC_URI="mirror://sourceforge/${PN}/Source/${MY_P}.tar.bz2"
|
||||
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
|
||||
S=${WORKDIR}/${MY_P}
|
||||
fi
|
||||
|
||||
GV="2.24"
|
||||
MV="4.5.2"
|
||||
COMPHOLIO_P="wine-staging-${PV}"
|
||||
WINE_GENTOO="wine-gentoo-2013.06.24"
|
||||
DESCRIPTION="Free implementation of Windows(tm) on Unix"
|
||||
HOMEPAGE="http://www.winehq.org/"
|
||||
SRC_URI="${SRC_URI}
|
||||
gecko? (
|
||||
abi_x86_32? ( mirror://sourceforge/${PN}/Wine%20Gecko/${GV}/wine_gecko-${GV}-x86.msi )
|
||||
abi_x86_64? ( mirror://sourceforge/${PN}/Wine%20Gecko/${GV}/wine_gecko-${GV}-x86_64.msi )
|
||||
)
|
||||
mono? ( mirror://sourceforge/${PN}/Wine%20Mono/${MV}/wine-mono-${MV}.msi )
|
||||
pipelight? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${COMPHOLIO_P}.tar.gz )
|
||||
pulseaudio? ( https://github.com/wine-compholio/wine-staging/archive/v${PV}.tar.gz -> ${COMPHOLIO_P}.tar.gz )
|
||||
http://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
|
||||
|
||||
LICENSE="LGPL-2.1"
|
||||
SLOT="0"
|
||||
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pipelight +png +prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype +udisks v4l +X xcomposite xinerama +xml"
|
||||
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
|
||||
test? ( abi_x86_32 )
|
||||
elibc_glibc? ( threads )
|
||||
mono? ( abi_x86_32 )
|
||||
osmesa? ( opengl )" #286560
|
||||
|
||||
# FIXME: the test suite is unsuitable for us; many tests require net access
|
||||
# or fail due to Xvfb's opengl limitations.
|
||||
RESTRICT="test"
|
||||
|
||||
NATIVE_DEPEND="
|
||||
truetype? ( >=media-libs/freetype-2.0.0 )
|
||||
capi? ( net-dialup/capi4k-utils )
|
||||
ncurses? ( >=sys-libs/ncurses-5.2:= )
|
||||
udisks? ( sys-apps/dbus )
|
||||
fontconfig? ( media-libs/fontconfig:= )
|
||||
gphoto2? ( media-libs/libgphoto2:= )
|
||||
openal? ( media-libs/openal:= )
|
||||
gstreamer? ( media-libs/gstreamer:0.10 media-libs/gst-plugins-base:0.10 )
|
||||
X? (
|
||||
x11-libs/libXcursor
|
||||
x11-libs/libXext
|
||||
x11-libs/libXrandr
|
||||
x11-libs/libXi
|
||||
x11-libs/libXxf86vm
|
||||
)
|
||||
xinerama? ( x11-libs/libXinerama )
|
||||
alsa? ( media-libs/alsa-lib )
|
||||
cups? ( net-print/cups:= )
|
||||
opencl? ( virtual/opencl )
|
||||
opengl? (
|
||||
virtual/glu
|
||||
virtual/opengl
|
||||
)
|
||||
gsm? ( media-sound/gsm:= )
|
||||
jpeg? ( virtual/jpeg:0= )
|
||||
ldap? ( net-nds/openldap:= )
|
||||
lcms? ( media-libs/lcms:2= )
|
||||
mp3? ( >=media-sound/mpg123-1.5.0 )
|
||||
netapi? ( net-fs/samba[netapi(+)] )
|
||||
nls? ( sys-devel/gettext )
|
||||
odbc? ( dev-db/unixODBC:= )
|
||||
osmesa? ( media-libs/mesa[osmesa] )
|
||||
pipelight? ( sys-apps/attr )
|
||||
pulseaudio? ( media-sound/pulseaudio )
|
||||
xml? ( dev-libs/libxml2 dev-libs/libxslt )
|
||||
scanner? ( media-gfx/sane-backends:= )
|
||||
ssl? ( net-libs/gnutls:= )
|
||||
png? ( media-libs/libpng:0= )
|
||||
v4l? ( media-libs/libv4l )
|
||||
xcomposite? ( x11-libs/libXcomposite )"
|
||||
|
||||
COMMON_DEPEND="
|
||||
!amd64? ( ${NATIVE_DEPEND} )
|
||||
amd64? (
|
||||
abi_x86_64? ( ${NATIVE_DEPEND} )
|
||||
abi_x86_32? (
|
||||
truetype? ( || (
|
||||
>=app-emulation/emul-linux-x86-xlibs-2.1[development,-abi_x86_32(-)]
|
||||
>=media-libs/freetype-2.5.0.1[abi_x86_32(-)]
|
||||
) )
|
||||
ncurses? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=sys-libs/ncurses-5.9-r3[abi_x86_32(-)]
|
||||
) )
|
||||
udisks? ( || (
|
||||
>=app-emulation/emul-linux-x86-baselibs-20130224[development,-abi_x86_32(-)]
|
||||
>=sys-apps/dbus-1.6.18-r1[abi_x86_32(-)]
|
||||
) )
|
||||
fontconfig? ( || (
|
||||
app-emulation/emul-linux-x86-xlibs[development,-abi_x86_32(-)]
|
||||
>=media-libs/fontconfig-2.10.92[abi_x86_32(-)]
|
||||
) )
|
||||
gphoto2? ( || (
|
||||
app-emulation/emul-linux-x86-medialibs[development,-abi_x86_32(-)]
|
||||
>=media-libs/libgphoto2-2.5.3.1[abi_x86_32(-)]
|
||||
) )
|
||||
openal? ( || (
|
||||
app-emulation/emul-linux-x86-sdl[development,-abi_x86_32(-)]
|
||||
>=media-libs/openal-1.15.1[abi_x86_32(-)]
|
||||
) )
|
||||
gstreamer? ( || (
|
||||
app-emulation/emul-linux-x86-medialibs[development,-abi_x86_32(-)]
|
||||
(
|
||||
>=media-libs/gstreamer-0.10.36-r2:0.10[abi_x86_32(-)]
|
||||
>=media-libs/gst-plugins-base-0.10.36:0.10[abi_x86_32(-)]
|
||||
)
|
||||
) )
|
||||
X? ( || (
|
||||
app-emulation/emul-linux-x86-xlibs[development,-abi_x86_32(-)]
|
||||
(
|
||||
>=x11-libs/libXcursor-1.1.14[abi_x86_32(-)]
|
||||
>=x11-libs/libXext-1.3.2[abi_x86_32(-)]
|
||||
>=x11-libs/libXrandr-1.4.2[abi_x86_32(-)]
|
||||
>=x11-libs/libXi-1.7.2[abi_x86_32(-)]
|
||||
>=x11-libs/libXxf86vm-1.1.3[abi_x86_32(-)]
|
||||
)
|
||||
) )
|
||||
xinerama? ( || (
|
||||
app-emulation/emul-linux-x86-xlibs[development,-abi_x86_32(-)]
|
||||
>=x11-libs/libXinerama-1.1.3[abi_x86_32(-)]
|
||||
) )
|
||||
alsa? ( || (
|
||||
app-emulation/emul-linux-x86-soundlibs[alsa,development,-abi_x86_32(-)]
|
||||
>=media-libs/alsa-lib-1.0.27.2[abi_x86_32(-)]
|
||||
) )
|
||||
cups? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs
|
||||
>=net-print/cups-1.7.1-r1[abi_x86_32(-)]
|
||||
) )
|
||||
opencl? ( >=virtual/opencl-0-r3[abi_x86_32(-)] )
|
||||
opengl? ( || (
|
||||
app-emulation/emul-linux-x86-opengl[development,-abi_x86_32(-)]
|
||||
(
|
||||
>=virtual/glu-9.0-r1[abi_x86_32(-)]
|
||||
>=virtual/opengl-7.0-r1[abi_x86_32(-)]
|
||||
)
|
||||
) )
|
||||
gsm? ( || (
|
||||
app-emulation/emul-linux-x86-soundlibs[development,-abi_x86_32(-)]
|
||||
>=media-sound/gsm-1.0.13-r1[abi_x86_32(-)]
|
||||
) )
|
||||
jpeg? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=virtual/jpeg-0-r2:0[abi_x86_32(-)]
|
||||
) )
|
||||
ldap? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=net-nds/openldap-2.4.38-r1:=[abi_x86_32(-)]
|
||||
) )
|
||||
lcms? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=media-libs/lcms-2.5:2[abi_x86_32(-)]
|
||||
) )
|
||||
mp3? ( || (
|
||||
app-emulation/emul-linux-x86-soundlibs[development,-abi_x86_32(-)]
|
||||
>=media-sound/mpg123-1.15.4[abi_x86_32(-)]
|
||||
) )
|
||||
netapi? ( >=net-fs/samba-3.6.23-r1[netapi(+),abi_x86_32(-)] )
|
||||
nls? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=sys-devel/gettext-0.18.3.2[abi_x86_32(-)]
|
||||
) )
|
||||
odbc? ( || (
|
||||
app-emulation/emul-linux-x86-db[development,-abi_x86_32(-)]
|
||||
>=dev-db/unixODBC-2.3.2:=[abi_x86_32(-)]
|
||||
) )
|
||||
osmesa? ( || (
|
||||
>=app-emulation/emul-linux-x86-opengl-20121028[development,-abi_x86_32(-)]
|
||||
>=media-libs/mesa-9.1.6[osmesa,abi_x86_32(-)]
|
||||
) )
|
||||
pipelight? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=sys-apps/attr-2.4.47-r1[abi_x86_32(-)]
|
||||
) )
|
||||
pulseaudio? ( || (
|
||||
app-emulation/emul-linux-x86-soundlibs[development,-abi_x86_32(-)]
|
||||
>=media-sound/pulseaudio-5.0[abi_x86_32(-)]
|
||||
) )
|
||||
xml? ( || (
|
||||
>=app-emulation/emul-linux-x86-baselibs-20131008[development,-abi_x86_32(-)]
|
||||
(
|
||||
>=dev-libs/libxml2-2.9.1-r4[abi_x86_32(-)]
|
||||
>=dev-libs/libxslt-1.1.28-r1[abi_x86_32(-)]
|
||||
)
|
||||
) )
|
||||
scanner? ( || (
|
||||
app-emulation/emul-linux-x86-medialibs[development,-abi_x86_32(-)]
|
||||
>=media-gfx/sane-backends-1.0.23:=[abi_x86_32(-)]
|
||||
) )
|
||||
ssl? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=net-libs/gnutls-2.12.23-r6:=[abi_x86_32(-)]
|
||||
) )
|
||||
png? ( || (
|
||||
app-emulation/emul-linux-x86-baselibs[development,-abi_x86_32(-)]
|
||||
>=media-libs/libpng-1.6.10:0[abi_x86_32(-)]
|
||||
) )
|
||||
v4l? ( || (
|
||||
app-emulation/emul-linux-x86-medialibs[development,-abi_x86_32(-)]
|
||||
>=media-libs/libv4l-0.9.5[abi_x86_32(-)]
|
||||
) )
|
||||
xcomposite? ( || (
|
||||
app-emulation/emul-linux-x86-xlibs[development,-abi_x86_32(-)]
|
||||
>=x11-libs/libXcomposite-0.4.4-r1[abi_x86_32(-)]
|
||||
) )
|
||||
)
|
||||
)"
|
||||
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
dos? ( games-emulation/dosbox )
|
||||
perl? ( dev-lang/perl dev-perl/XML-Simple )
|
||||
samba? ( >=net-fs/samba-3.0.25 )
|
||||
selinux? ( sec-policy/selinux-wine )
|
||||
udisks? ( sys-fs/udisks:2 )
|
||||
pulseaudio? ( realtime? ( sys-auth/rtkit ) )"
|
||||
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
amd64? ( abi_x86_32? ( !abi_x86_64? ( ${NATIVE_DEPEND} ) ) )
|
||||
X? (
|
||||
x11-proto/inputproto
|
||||
x11-proto/xextproto
|
||||
x11-proto/xf86vidmodeproto
|
||||
)
|
||||
xinerama? ( x11-proto/xineramaproto )
|
||||
prelink? ( sys-devel/prelink )
|
||||
>=sys-kernel/linux-headers-2.6
|
||||
virtual/pkgconfig
|
||||
virtual/yacc
|
||||
sys-devel/flex"
|
||||
|
||||
# These use a non-standard "Wine" category, which is provided by
|
||||
# /etc/xdg/applications-merged/wine.menu
|
||||
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
|
||||
usr/share/applications/wine-notepad.desktop
|
||||
usr/share/applications/wine-uninstaller.desktop
|
||||
usr/share/applications/wine-winecfg.desktop"
|
||||
|
||||
wine_build_environment_check() {
|
||||
[[ ${MERGE_TYPE} = "binary" ]] && return 0
|
||||
|
||||
if use abi_x86_64 && [[ $(( $(gcc-major-version) * 100 + $(gcc-minor-version) )) -lt 404 ]]; then
|
||||
eerror "You need gcc-4.4+ to build 64-bit wine"
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && use opencl && [[ x$(eselect opencl show 2> /dev/null) = "xintel" ]]; then
|
||||
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
|
||||
eerror "See https://bugs.gentoo.org/487864 for more details."
|
||||
eerror
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
pkg_pretend() {
|
||||
wine_build_environment_check || die
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
wine_build_environment_check || die
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
if [[ ${PV} == "9999" ]] ; then
|
||||
git-2_src_unpack
|
||||
else
|
||||
unpack ${MY_P}.tar.bz2
|
||||
fi
|
||||
|
||||
use pipelight || use pulseaudio && unpack "${COMPHOLIO_P}.tar.gz"
|
||||
|
||||
unpack "${WINE_GENTOO}.tar.bz2"
|
||||
|
||||
l10n_find_plocales_changes "${S}/po" "" ".po"
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
local md5="$(md5sum server/protocol.def)"
|
||||
local f
|
||||
local PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
|
||||
"${FILESDIR}"/${PN}-1.4_rc2-multilib-portage.patch #395615
|
||||
"${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
|
||||
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
|
||||
)
|
||||
local COMPHOLIO_MAKE_ARGS="-W fonts-Missing_Fonts.ok"
|
||||
|
||||
use pulseaudio || COMPHOLIO_MAKE_ARGS="${COMPHOLIO_MAKE_ARGS} -W winepulse-PulseAudio_Support.ok"
|
||||
if use gstreamer; then
|
||||
# See http://bugs.winehq.org/show_bug.cgi?id=30557
|
||||
ewarn "Applying experimental patch to fix GStreamer support. Note that"
|
||||
ewarn "this patch has been reported to cause crashes in certain games."
|
||||
|
||||
PATCHES+=( "${FILESDIR}/${PN}-1.7.28-gstreamer-v4.patch" )
|
||||
fi
|
||||
if use pipelight; then
|
||||
ewarn "Applying the unofficial Compholio patchset for Pipelight support,"
|
||||
ewarn "which is unsupported by Wine developers. Please don't report bugs"
|
||||
ewarn "to Wine bugzilla unless you can reproduce them with USE=-pipelight"
|
||||
|
||||
# epatch doesn't support binary patches and we ship our own pulse patches
|
||||
emake -C "${WORKDIR}/${COMPHOLIO_P}/patches" \
|
||||
$(echo ${COMPHOLIO_MAKE_ARGS}) \
|
||||
series
|
||||
|
||||
PATCHES+=( $(sed -e "s:^:${WORKDIR}/${COMPHOLIO_P}/patches/:" \
|
||||
"${WORKDIR}/${COMPHOLIO_P}/patches/series") )
|
||||
|
||||
# epatch doesn't support binary patches
|
||||
ebegin "Applying Compholio font patches"
|
||||
for f in "${WORKDIR}/${COMPHOLIO_P}/patches/fonts-Missing_Fonts"/*.patch; do
|
||||
"../${COMPHOLIO_P}/debian/tools/gitapply.sh" < "${f}" \
|
||||
|| die "Failed to apply ${f}"
|
||||
done
|
||||
eend
|
||||
elif use pulseaudio; then
|
||||
PATCHES+=( "../${COMPHOLIO_P}/patches/winepulse-PulseAudio_Support"/*.patch )
|
||||
fi
|
||||
autotools-utils_src_prepare
|
||||
|
||||
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
|
||||
einfo "server/protocol.def was patched; running tools/make_requests"
|
||||
tools/make_requests || die #432348
|
||||
fi
|
||||
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
|
||||
if ! use run-exes; then
|
||||
sed -i '/^MimeType/d' tools/wine.desktop || die #117785
|
||||
fi
|
||||
|
||||
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
|
||||
cp "${WORKDIR}"/${WINE_GENTOO}/icons/oic_winlogo.ico dlls/user32/resources/ || die
|
||||
|
||||
l10n_get_locales > po/LINGUAS # otherwise wine doesn't respect LINGUAS
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
export LDCONFIG=/bin/true
|
||||
use custom-cflags || strip-flags
|
||||
|
||||
multilib-minimal_src_configure
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
local myconf=(
|
||||
--sysconfdir=/etc/wine
|
||||
$(use_with alsa)
|
||||
$(use_with capi)
|
||||
$(use_with lcms cms)
|
||||
$(use_with cups)
|
||||
$(use_with ncurses curses)
|
||||
$(use_with udisks dbus)
|
||||
$(use_with fontconfig)
|
||||
$(use_with ssl gnutls)
|
||||
$(use_with gphoto2 gphoto)
|
||||
$(use_with gsm)
|
||||
$(use_with gstreamer)
|
||||
--without-hal
|
||||
$(use_with jpeg)
|
||||
$(use_with ldap)
|
||||
$(use_with mp3 mpg123)
|
||||
$(use_with netapi)
|
||||
$(use_with nls gettext)
|
||||
$(use_with openal)
|
||||
$(use_with opencl)
|
||||
$(use_with opengl)
|
||||
$(use_with osmesa)
|
||||
$(use_with oss)
|
||||
--without-pcap
|
||||
$(use_with png)
|
||||
$(use_with threads pthread)
|
||||
$(use_with scanner sane)
|
||||
$(use_enable test tests)
|
||||
$(use_with truetype freetype)
|
||||
$(use_with v4l)
|
||||
$(use_with X x)
|
||||
$(use_with xcomposite)
|
||||
$(use_with xinerama)
|
||||
$(use_with xml)
|
||||
$(use_with xml xslt)
|
||||
)
|
||||
|
||||
use pulseaudio && myconf+=( --with-pulse )
|
||||
use pipelight && myconf+=( --with-xattr )
|
||||
|
||||
local PKG_CONFIG AR RANLIB
|
||||
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
|
||||
# set AR and RANLIB to make QA scripts happy; #483342
|
||||
tc-export PKG_CONFIG AR RANLIB
|
||||
|
||||
if use amd64; then
|
||||
if [[ ${ABI} == amd64 ]]; then
|
||||
myconf+=( --enable-win64 )
|
||||
else
|
||||
myconf+=( --disable-win64 )
|
||||
fi
|
||||
|
||||
# Note: using --with-wine64 results in problems with multilib.eclass
|
||||
# CC/LD hackery. We're using separate tools instead.
|
||||
fi
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${myconf[@]}"
|
||||
emake depend
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
|
||||
if [[ ${ABI} == x86 ]]; then
|
||||
if [[ $(id -u) == 0 ]]; then
|
||||
ewarn "Skipping tests since they cannot be run under the root user."
|
||||
ewarn "To run the test ${PN} suite, add userpriv to FEATURES in make.conf"
|
||||
return
|
||||
fi
|
||||
|
||||
WINEPREFIX="${T}/.wine-${ABI}" \
|
||||
Xemake test
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
local DOCS=( ANNOUNCE AUTHORS README )
|
||||
local l
|
||||
add_locale_docs() {
|
||||
local locale_doc="documentation/README.$1"
|
||||
[[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
|
||||
}
|
||||
l10n_for_each_locale_do add_locale_docs
|
||||
|
||||
einstalldocs
|
||||
prune_libtool_files --all
|
||||
|
||||
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
|
||||
if use gecko ; then
|
||||
insinto /usr/share/wine/gecko
|
||||
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
|
||||
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
|
||||
fi
|
||||
if use mono ; then
|
||||
insinto /usr/share/wine/mono
|
||||
doins "${DISTDIR}"/wine-mono-${MV}.msi
|
||||
fi
|
||||
if ! use perl ; then
|
||||
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
|
||||
fi
|
||||
|
||||
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
|
||||
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
|
||||
|
||||
if use abi_x86_64 && ! use abi_x86_32; then
|
||||
dosym /usr/bin/wine{64,} # 404331
|
||||
dosym /usr/bin/wine{64,}-preloader
|
||||
fi
|
||||
|
||||
# respect LINGUAS when installing man pages, #469418
|
||||
for l in de fr pl; do
|
||||
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
|
||||
done
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
gnome2_icon_savelist
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
gnome2_icon_cache_update
|
||||
fdo-mime_desktop_database_update
|
||||
}
|
||||
|
||||
pkg_postrm() {
|
||||
gnome2_icon_cache_update
|
||||
fdo-mime_desktop_database_update
|
||||
}
|
Loading…
Reference in New Issue
Block a user