elf_file_unittest_relocs.cc revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Test data for packing/unpacking.  When compiled, creates a run of
6// relative relocations.
7//
8// #!/bin/bash
9//
10// # Compile as an arm shared library.
11// /usr/bin/arm-linux-gnueabi-g++ -shared -o /tmp/testdata.so \
12//   elf_file_unittest_relocs.cc
13//
14// # Add a new null .android.rel.dyn section, needed for packing.
15// echo 'NULL' >/tmp/small
16// /usr/bin/arm-linux-gnueabi-objcopy \
17//   --add-section .android.rel.dyn=/tmp/small /tmp/testdata.so
18//
19// # Create packed and unpacked reference files.
20// packer="../../../out_android/Debug/relocation_packer"
21// cp /tmp/testdata.so elf_file_unittest_relocs_packed.so
22// $packer elf_file_unittest_relocs_packed.so
23// cp elf_file_unittest_relocs_packed.so elf_file_unittest_relocs.so
24// $packer -u elf_file_unittest_relocs.so
25//
26// # Clean up.
27// rm /tmp/testdata.so /tmp/small
28
29const int i = 0;
30
31const void* pointer_0 = &i;
32const void* pointer_1 = &i;
33const void* pointer_2 = &i;
34const void* pointer_3 = &i;
35const void* pointer_4 = &i;
36const void* pointer_5 = &i;
37const void* pointer_6 = &i;
38const void* pointer_7 = &i;
39const void* pointer_8 = &i;
40const void* pointer_9 = &i;
41const void* pointer_10 = &i;
42const void* pointer_11 = &i;
43const void* pointer_12 = &i;
44const void* pointer_13 = &i;
45const void* pointer_14 = &i;
46const void* pointer_15 = &i;
47const void* pointer_16 = &i;
48const void* pointer_17 = &i;
49const void* pointer_18 = &i;
50const void* pointer_19 = &i;
51const void* pointer_20 = &i;
52const void* pointer_21 = &i;
53const void* pointer_22 = &i;
54const void* pointer_23 = &i;
55const void* pointer_24 = &i;
56const void* pointer_25 = &i;
57const void* pointer_26 = &i;
58const void* pointer_27 = &i;
59const void* pointer_28 = &i;
60const void* pointer_29 = &i;
61const void* pointer_30 = &i;
62const void* pointer_31 = &i;
63const void* pointer_32 = &i;
64