summaryrefslogtreecommitdiffstats
path: root/wine
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2013-03-20 08:05:25 +0000
committer Eric Hameleers <alien@slackware.com>2013-03-20 08:05:25 +0000
commit5ca54aad5eedc46b31ef42ca6785af8e76d76dc5 (patch)
tree12d0a6ea8f5f2e86a05bf83aba42fa0bb4723cf6 /wine
parent6faa8369d31a40faaa55f76fb396d78c58c2c57a (diff)
downloadasb-5ca54aad5eedc46b31ef42ca6785af8e76d76dc5.tar.gz
asb-5ca54aad5eedc46b31ef42ca6785af8e76d76dc5.tar.xz
Initial revision
Diffstat (limited to 'wine')
-rw-r--r--wine/build/wine_multilib_winegcc.patch59
-rw-r--r--wine/build/wine_winebuild-CCAS.patch214
2 files changed, 273 insertions, 0 deletions
diff --git a/wine/build/wine_multilib_winegcc.patch b/wine/build/wine_multilib_winegcc.patch
new file mode 100644
index 00000000..2045e343
--- /dev/null
+++ b/wine/build/wine_multilib_winegcc.patch
@@ -0,0 +1,59 @@
+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;
diff --git a/wine/build/wine_winebuild-CCAS.patch b/wine/build/wine_winebuild-CCAS.patch
new file mode 100644
index 00000000..3971ddd3
--- /dev/null
+++ b/wine/build/wine_winebuild-CCAS.patch
@@ -0,0 +1,214 @@
+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
+