Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Matthew Finkel
tor-browser-build
Commits
d4215cdb
Commit
d4215cdb
authored
Nov 16, 2018
by
sisbell
Committed by
Georg Koppen
Nov 16, 2018
Browse files
Bug 28469: Fix unsupported libbacktrace in Rust 1.26
parent
c50a3168
Changes
4
Show whitespace changes
Inline
Side-by-side
projects/rust/0001-Make-sure-dl_iterate_phdr-is-undefined-on-Android.patch
0 → 100644
View file @
d4215cdb
From 4fa67c8a014ac10558be71edec9048851ca7a02d Mon Sep 17 00:00:00 2001
From: Georg Koppen <gk@torproject.org>
Date: Thu, 15 Nov 2018 19:04:46 +0000
Subject: [PATCH] Make sure `dl_iterate_phdr` is undefined on Android
If we build with API < 21 we'll run into undefined reference errors.
We follow the Rust people who ran into similar issues when
upgrading libbacktrace for 1.28.0 in making sure `dl_iterate_phdr` is
not defined for Android.
diff --git a/src/libbacktrace/configure b/src/libbacktrace/configure
index 8bdb29d256..8941fcd2b0 100755
--- a/src/libbacktrace/configure
+++ b/src/libbacktrace/configure
@@ -12397,7 +12397,15 @@
rm -f conftest*
have_dl_iterate_phdr=no ;;
esac
else
- ac_fn_c_check_func "$LINENO" "dl_iterate_phdr" "ac_cv_func_dl_iterate_phdr"
+ case "${host}" in
+ *-*-androideabi*)
+ # Avoid dl_iterate_phdr on older Android API (which we use),
+ # as defining it causes undefined reference errors when
+ # compiling Firefox later on.
+ have_dl_iterate_phdr=no ;;
+ *) ac_fn_c_check_func "$LINENO" "dl_iterate_phdr" "ac_cv_func_dl_iterate_phdr" ;;
+ esac
+
if test "x$ac_cv_func_dl_iterate_phdr" = x""yes; then :
have_dl_iterate_phdr=yes
else
--
2.19.1
projects/rust/build
View file @
d4215cdb
...
...
@@ -62,6 +62,11 @@ cd /var/tmp/build/rustc-[% c('version') %]-src
patch
-
p1
<
$
rootdir
/
unwind
.
patch
[
%
END
%
]
[
%
IF
c
(
"var/android"
)
%
]
patch
-
p1
<
$
rootdir
/
0001
-
Make
-
sure
-
dl_iterate_phdr
-
is
-
undefined
-
on
-
Android
.
patch
patch
-
p1
<
$
rootdir
/
replace_pagesize_in_mmap
.
patch
[
%
END
%
]
mkdir
build
cd
build
..
/
configure
--
prefix
=
$
distdir
[
%
c
(
"var/configure_opt"
)
%
]
...
...
projects/rust/config
View file @
d4215cdb
...
...
@@ -22,7 +22,7 @@ targets:
-
libssl-dev
-
pkg-config
-
zlib1g-dev
configure_opt
:
--enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=armv7-linux-androideabi
--set=target.armv7-linux-androideabi.ar=$ANDROID_NDK_HOME/arm/bin/arm-linux-androideabi-ar --set=target.armv7-linux-androideabi.linker=$ANDROID_NDK_HOME/arm/bin/arm-linux-androideabi-clang
--set=target.armv7-linux-androideabi.cc=$ANDROID_NDK_HOME/arm/bin/arm-linux-androideabi-gcc
configure_opt
:
--enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=armv7-linux-androideabi --set=target.armv7-linux-androideabi.cc=$ANDROID_NDK_HOME/arm/bin/arm-linux-androideabi-gcc
linux
:
var
:
...
...
@@ -90,3 +90,7 @@ input_files:
gpg_keyring
:
rust.gpg
-
filename
:
unwind.patch
enable
:
'
[%
c("var/windows-i686")
%]'
-
filename
:
0001-Make-sure-dl_iterate_phdr-is-undefined-on-Android.patch
enable
:
'
[%
c("var/android")
%]'
-
filename
:
replace_pagesize_in_mmap.patch
enable
:
'
[%
c("var/android")
%]'
projects/rust/replace_pagesize_in_mmap.patch
0 → 100644
View file @
d4215cdb
diff --git a/src/libbacktrace/mmap.c b/src/libbacktrace/mmap.c
index 138ef70711..e3c4cd2643 100644
--- a/src/libbacktrace/mmap.c
+++ b/src/libbacktrace/mmap.c
@@ -140,7 +140,7 @@
backtrace_alloc (struct backtrace_state *state,
{
/* Allocate a new page. */
- pagesize = getpagesize ();
+ pagesize = sysconf(_SC_PAGESIZE);
asksize = (size + pagesize - 1) & ~ (pagesize - 1);
page = mmap (NULL, asksize, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
@@ -181,7 +181,7 @@
backtrace_free (struct backtrace_state *state, void *addr, size_t size,
{
size_t pagesize;
- pagesize = getpagesize ();
+ pagesize = sysconf(_SC_PAGESIZE);
if (((uintptr_t) addr & (pagesize - 1)) == 0
&& (size & (pagesize - 1)) == 0)
{
@@ -226,7 +226,7 @@
backtrace_vector_grow (struct backtrace_state *state,size_t size,
size_t alc;
void *base;
- pagesize = getpagesize ();
+ pagesize = sysconf(_SC_PAGESIZE);
alc = vec->size + size;
if (vec->size == 0)
alc = 16 * size;
diff --git a/src/libbacktrace/mmapio.c b/src/libbacktrace/mmapio.c
index dfdaf6fa52..5b23003090 100644
--- a/src/libbacktrace/mmapio.c
+++ b/src/libbacktrace/mmapio.c
@@ -60,7 +60,7 @@
backtrace_get_view (struct backtrace_state *state ATTRIBUTE_UNUSED,
off_t pageoff;
void *map;
- pagesize = getpagesize ();
+ pagesize = sysconf(_SC_PAGESIZE);
inpage = offset % pagesize;
pageoff = offset - inpage;
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment