nginx/nginx-1.4.4-passenger-4.0.33_fix.patch

174 lines
5.4 KiB
Diff

--- passenger/build/common_library.rb
+++ passenger/build/common_library.rb
@@ -34,19 +34,19 @@
# Defines tasks for compiling a static library containing Boost and OXT.
def define_libboost_oxt_task(namespace, output_dir, extra_compiler_flags = nil)
output_file = "#{output_dir}.a"
- flags = "-Iext #{extra_compiler_flags} #{EXTRA_CXXFLAGS}"
-
+ flags = "-Iext #{extra_compiler_flags} #{EXTRA_CXXFLAGS} -fPIC #{ENV['RPM_OPT_FLAGS']} "
+
if false && boolean_option('RELEASE')
# Disable RELEASE support. Passenger Standalone wants to link to the
# common library but does not know whether it was compiled with RELEASE
# or not. See http://code.google.com/p/phusion-passenger/issues/detail?id=808
sources = Dir['ext/boost/libs/**/*.cpp'] + Dir['ext/oxt/*.cpp']
sources.sort!
-
+
aggregate_source = "#{output_dir}/aggregate.cpp"
aggregate_object = "#{output_dir}/aggregate.o"
object_files = [aggregate_object]
-
+
file(aggregate_object => sources) do
sh "mkdir -p #{output_dir}" if !File.directory?(output_dir)
aggregate_content = %Q{
@@ -71,13 +71,13 @@
boost_output_dir = "#{output_dir}/boost"
object_file = "#{boost_output_dir}/#{object_name}"
boost_object_files << object_file
-
+
file object_file => source_file do
sh "mkdir -p #{boost_output_dir}" if !File.directory?(boost_output_dir)
compile_cxx(source_file, "#{flags} -o #{object_file}")
end
end
-
+
# Define compilation targets for .cpp files in ext/oxt.
oxt_object_files = []
oxt_dependency_files = Dir["ext/oxt/*.hpp"] + Dir["ext/oxt/detail/*.hpp"]
@@ -92,19 +92,19 @@
compile_cxx(source_file, "#{flags} -o #{object_file}")
end
end
-
+
object_files = boost_object_files + oxt_object_files
end
-
+
file(output_file => object_files) do
sh "mkdir -p #{output_dir}"
create_static_library(output_file, object_files.join(' '))
end
-
+
task "#{namespace}:clean" do
sh "rm -rf #{output_file} #{output_dir}"
end
-
+
return output_file
end
@@ -116,9 +116,9 @@
LIBEV_CFLAGS = "-Iext/libev"
LIBEV_LIBS = LIBEV_OUTPUT_DIR + ".libs/libev.a"
LIBEV_TARGET = LIBEV_LIBS
-
+
task :libev => LIBEV_TARGET
-
+
dependencies = [
"ext/libev/configure",
"ext/libev/config.h.in",
@@ -128,7 +128,7 @@
cc = PlatformInfo.cc
cxx = PlatformInfo.cxx
# Disable all warnings: http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#COMPILER_WARNINGS
- cflags = "#{EXTRA_CFLAGS} -w"
+ cflags = "#{EXTRA_CFLAGS} #{ENV['RPM_OPT_FLAGS']} -w"
sh "mkdir -p #{LIBEV_OUTPUT_DIR}" if !File.directory?(LIBEV_OUTPUT_DIR)
sh "cd #{LIBEV_OUTPUT_DIR} && sh #{LIBEV_SOURCE_DIR}configure " +
"--disable-shared --enable-static " +
@@ -136,7 +136,7 @@
# do, so we force our compiler choice.
"CC='#{cc}' CXX='#{cxx}' CFLAGS='#{cflags}' orig_CFLAGS=1"
end
-
+
libev_sources = Dir["ext/libev/{*.c,*.h}"]
file LIBEV_OUTPUT_DIR + ".libs/libev.a" => [LIBEV_OUTPUT_DIR + "Makefile"] + libev_sources do
sh "rm -f #{LIBEV_OUTPUT_DIR}/libev.la"
@@ -148,7 +148,7 @@
sh "cd #{LIBEV_OUTPUT_DIR} && make maintainer-clean"
end
end
-
+
task :clean => 'libev:clean'
else
LIBEV_CFLAGS = string_option('LIBEV_CFLAGS', '-I/usr/include/libev')
@@ -168,9 +168,9 @@
LIBEIO_CFLAGS = "-Iext/libeio"
LIBEIO_LIBS = LIBEIO_OUTPUT_DIR + ".libs/libeio.a"
LIBEIO_TARGET = LIBEIO_LIBS
-
+
task :libeio => LIBEIO_TARGET
-
+
dependencies = [
"ext/libeio/configure",
"ext/libeio/config.h.in",
@@ -181,7 +181,7 @@
cxx = PlatformInfo.cxx
# Disable all warnings. The author has a clear standpoint on that:
# http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#COMPILER_WARNINGS
- cflags = "#{EXTRA_CFLAGS} -w"
+ cflags = "#{EXTRA_CFLAGS} #{ENV['RPM_OPT_FLAGS']} -w"
sh "mkdir -p #{LIBEIO_OUTPUT_DIR}" if !File.directory?(LIBEIO_OUTPUT_DIR)
sh "cd #{LIBEIO_OUTPUT_DIR} && sh #{LIBEIO_SOURCE_DIR}configure " +
"--disable-shared --enable-static " +
@@ -189,13 +189,14 @@
# do, so we force our compiler choice.
"CC='#{cc}' CXX='#{cxx}' CFLAGS='#{cflags}'"
end
-
+
libeio_sources = Dir["ext/libeio/{*.c,*.h}"]
file LIBEIO_OUTPUT_DIR + ".libs/libeio.a" => [LIBEIO_OUTPUT_DIR + "Makefile"] + libeio_sources do
sh "rm -f #{LIBEIO_OUTPUT_DIR}/libeio.la"
+ sh "cd #{LIBEIO_OUTPUT_DIR} && make eio.o"
sh "cd #{LIBEIO_OUTPUT_DIR} && make libeio.la"
end
-
+
task :clean do
if File.exist?(LIBEIO_OUTPUT_DIR + "Makefile")
sh "cd #{LIBEIO_OUTPUT_DIR} && make maintainer-clean"
--- passenger/ext/boost/libs/thread/src/pthread/thread.cpp
+++ passenger/ext/boost/libs/thread/src/pthread/thread.cpp
@@ -390,6 +390,7 @@
{
return false;
}
+ return false;
}
bool thread::joinable() const BOOST_NOEXCEPT
--- passenger/lib/phusion_passenger/common_library.rb
+++ passenger/lib/phusion_passenger/common_library.rb
@@ -101,7 +101,7 @@
end
def define_tasks(extra_compiler_flags = nil)
- flags = "-Iext -Iext/common #{LIBEV_CFLAGS} #{extra_compiler_flags} "
+ flags = "-Iext -Iext/common #{LIBEV_CFLAGS} #{extra_compiler_flags} -fPIC #{ENV['RPM_OPT_FLAGS']} "
cflags = (flags + EXTRA_CFLAGS).strip
cxxflags = (flags + EXTRA_CXXFLAGS).strip
@@ -171,7 +171,7 @@
# packaging the runtime ('passenger package-runtime') so we
# never generate static libraries.
library = "#{@output_dir}/#{category}.a"
-
+
file(library => object_filenames) do
create_static_library(library, object_filenames.join(' '))
end