- Add solaris native ld support to GCC build wrapper - Add solaris ld wrapper that fixes -L argument orderwip/yesman
parent
bcaea92a12
commit
15e865ac09
@ -0,0 +1,40 @@ |
||||
#!/bin/bash |
||||
|
||||
set -e |
||||
set -u |
||||
|
||||
# I've also tried adding -z direct and -z lazyload, but it gave too many problems with C++ exceptions :'( |
||||
# Also made sure libgcc would not be lazy-loaded, as suggested here: https://www.illumos.org/issues/2534#note-3 |
||||
# but still no success. |
||||
cmd="@ld@ -z ignore" |
||||
|
||||
args=("$@"); |
||||
|
||||
# This loop makes sure all -L arguments are before -l arguments, or ld may complain it cannot find a library. |
||||
# GNU binutils does not have this problem: |
||||
# http://stackoverflow.com/questions/5817269/does-the-order-of-l-and-l-options-in-the-gnu-linker-matter |
||||
i=0; |
||||
while [[ $i -lt $# ]]; do |
||||
case "${args[$i]}" in |
||||
-L) cmd="$cmd ${args[$i]} ${args[($i+1)]}"; i=($i+1); ;; |
||||
-L*) cmd="$cmd ${args[$i]}" ;; |
||||
*) ;; |
||||
esac |
||||
i=($i+1); |
||||
done |
||||
|
||||
i=0; |
||||
while [[ $i -lt $# ]]; do |
||||
case "${args[$i]}" in |
||||
-L) i=($i+1); ;; |
||||
-L*) ;; |
||||
*) cmd="$cmd ${args[$i]}" ;; |
||||
esac |
||||
i=($i+1); |
||||
done |
||||
|
||||
# Trace: |
||||
set -x |
||||
exec $cmd |
||||
|
||||
exit 0 |
@ -0,0 +1,42 @@ |
||||
https://bugs.gentoo.org/show_bug.cgi?id=447928
|
||||
--- ppl-1.0/src/p_std_bits.cc.org 2012-12-30 00:37:03.033948083 +0100
|
||||
+++ ppl-1.0/src/mp_std_bits.cc 2012-12-30 00:44:12.893019313 +0100
|
||||
@@ -25,6 +25,9 @@
|
||||
#include "ppl-config.h"
|
||||
#include "mp_std_bits.defs.hh"
|
||||
|
||||
+#if __GNU_MP_VERSION < 5 \
|
||||
+ || (__GNU_MP_VERSION == 5 && __GNU_MP_VERSION_MINOR < 1)
|
||||
+
|
||||
const bool std::numeric_limits<mpz_class>::is_specialized;
|
||||
const int std::numeric_limits<mpz_class>::digits;
|
||||
const int std::numeric_limits<mpz_class>::digits10;
|
||||
@@ -70,3 +73,6 @@
|
||||
const bool std::numeric_limits<mpq_class>::traps;
|
||||
const bool std::numeric_limits<mpq_class>::tininess_before;
|
||||
const std::float_round_style std::numeric_limits<mpq_class>::round_style;
|
||||
+
|
||||
+#endif // __GNU_MP_VERSION < 5
|
||||
+ // || (__GNU_MP_VERSION == 5 && __GNU_MP_VERSION_MINOR < 1)
|
||||
--- ppl-1.0/src/mp_std_bits.defs.hh.org 2012-12-30 00:37:03.037948187 +0100
|
||||
+++ ppl-1.0/src/mp_std_bits.defs.hh 2012-12-30 00:42:32.002424189 +0100
|
||||
@@ -38,6 +38,9 @@
|
||||
#endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
|
||||
void swap(mpq_class& x, mpq_class& y);
|
||||
|
||||
+#if __GNU_MP_VERSION < 5 \
|
||||
+ || (__GNU_MP_VERSION == 5 && __GNU_MP_VERSION_MINOR < 1)
|
||||
+
|
||||
namespace std {
|
||||
|
||||
#ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
|
||||
@@ -164,6 +167,9 @@
|
||||
|
||||
} // namespace std
|
||||
|
||||
+#endif // __GNU_MP_VERSION < 5
|
||||
+ // || (__GNU_MP_VERSION == 5 && __GNU_MP_VERSION_MINOR < 1)
|
||||
+
|
||||
#include "mp_std_bits.inlines.hh"
|
||||
|
||||
#endif // !defined(PPL_mp_std_bits_defs_hh)
|
Loading…
Reference in new issue