summaryrefslogtreecommitdiff
path: root/doc/bugs/git-annex_broken_on_Android_4.3/comment_26_c122ce53175fc9e0e114a8acd2385c0d._comment
blob: 1c72cd27bc680824d1971e445c17d6b9bd03ec99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[[!comment format=mdwn
 username="http://joeyh.name/"
 ip="209.250.56.246"
 subject="finally getting debugger spun up"
 date="2013-11-12T01:08:24Z"
 content="""
<https://code.google.com/p/android/issues/detail?id=28598> seems relevant (and the patches to fix it seem likely to have led to the linker rejecting this).

So I can probably stop torturing your soft keyboards. I need a binary where `arm-linux-androideabi-4.8/bin/arm-linux-androideabi-readelf -r` does not contain `R_ARM_COPY`. Checking against the binaries so far, this consistently matches the test results, all the git-annex binaries have:

<pre>
 Offset     Info    Type            Sym.Value  Sym. Name
011d05f0  00004e14 R_ARM_COPY        011d05f0   environ
</pre>

(Which is itself interesting; I've had to work around some problems with the haskell port not supporting getting the environment (Annex.Branch.withIndex). Possibly because it was copied and the linker screwed that up? <https://github.com/neurocyte/ghc-android/issues/7>)

Ok, here's a binary that meets those criteria. Obtained by passing -z nocopyreloc to the gold linker (ghc options -optl-z -optlnocopyreloc)

<http://tmp.kitenet.net/git-annex-nocopy>

Also, here's a hello world binary that *should* fail. It attempts to read and print the environment, and has the same `R_ARM_COPY` relocation.

<http://tmp.kitenet.net/hello-env-copy>

And, here's a hello world binary that *might* successfully print out the full environment (like `set` does). If it does, I can also remove the ugly hack in Annex.Branch.withIndex. Which would be an unexpected reward.

<http://tmp.kitenet.net/hello-env-nocopy>
"""]]