From ad45ad06995353a1d8decb02a9894010124734c4 Mon Sep 17 00:00:00 2001
From: Lars Kanis <lars@greiz-reinsdorf.de>
Date: Fri, 1 Jun 2012 15:58:07 +0200
Subject: [PATCH] Force static linked libgcc and libstdc++ for cross
compilation by using g++ as linker
Don't include sys/time.h for cross compilation, this avoids the fix for incompatible types of gettimeofday()
---
ext/fox16/extconf.rb | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/ext/fox16/extconf.rb b/ext/fox16/extconf.rb
index 6e5f66d..5fd92ee 100755
--- a/ext/fox16/extconf.rb
+++ b/ext/fox16/extconf.rb
@@ -80,7 +80,8 @@ def do_rake_compiler_setup
have_library( 'winspool', 'EnumPrintersA') && append_library( $libs, 'winspool' )
CONFIG['CC'] += "\nCXX=#{ENV['CROSS_PREFIX']}-g++" # Hack CXX into Makefile for cross compilation
- $CFLAGS += " -D_SYS_TIME_H_" # fix incompatible types for gettimeofday()
+ CONFIG['LDSHARED'].gsub!('gcc', 'g++') # ensure C++ linker is used, so that libstdc++ is linked static
+ $LDFLAGS += " -static-libgcc -static-libstdc++" # mingw-w64 v4.7 defaults to dynamic linking
elsif RUBY_PLATFORM =~ /mingw/
$CFLAGS = $CFLAGS + " -I/usr/local/include"
$LDFLAGS = $LDFLAGS + " -I/usr/local/lib"
@@ -92,8 +93,8 @@ def do_rake_compiler_setup
$LDFLAGS = $LDFLAGS + " -L/usr/local/lib" # for libjpeg and libtiff
%w{Xft}.each {|lib| $libs = append_library($libs, lib) }
end
- $libs = append_library($libs, "stdc++")
- have_header("sys/time.h") unless RUBY_PLATFORM =~ /mingw/
+ $libs = append_library($libs, "stdc++") unless RUBY_PLATFORM =~ /mingw/ || enable_config("win32-static-build")
+ have_header("sys/time.h") unless RUBY_PLATFORM =~ /mingw/ || enable_config("win32-static-build")
have_header("signal.h")
if have_library("z", "deflate")
have_library("png", "png_create_read_struct")
--
GitLab