aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ldmain.c1
-rw-r--r--ld/testsuite/ld-elf/elf.exp23
-rw-r--r--ld/testsuite/ld-elf/pr32690.h17
-rw-r--r--ld/testsuite/ld-elf/pr32690a.c1297
-rw-r--r--ld/testsuite/ld-elf/pr32690b.c2119
5 files changed, 3457 insertions, 0 deletions
diff --git a/ld/ldmain.c b/ld/ldmain.c
index cb5e58d..54a834e 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -148,6 +148,7 @@ static struct bfd_link_callbacks link_callbacks =
reloc_dangerous,
unattached_reloc,
notice,
+ fatal,
einfo,
info_msg,
minfo,
diff --git a/ld/testsuite/ld-elf/elf.exp b/ld/testsuite/ld-elf/elf.exp
index 914be90..19e9b16 100644
--- a/ld/testsuite/ld-elf/elf.exp
+++ b/ld/testsuite/ld-elf/elf.exp
@@ -497,6 +497,17 @@ if { [istarget *-*-linux*]
]
}
+ run_cc_link_tests [list \
+ [list \
+ "Build pr32690.so" \
+ "-shared" \
+ "-O2 -fPIC" \
+ { pr32690b.c } \
+ {} \
+ "pr32690.so" \
+ ] \
+ ]
+
run_ld_link_exec_tests [list \
[list \
"Run mbind2a" \
@@ -516,6 +527,18 @@ if { [istarget *-*-linux*]
"pass.out" \
"-O2 -I../bfd" \
] \
+ [list \
+ "Run pr32690" \
+ "-pie -Wl,-z,now" \
+ "" \
+ { pr32690a.c } \
+ "pr32690" \
+ "pass.out" \
+ "-O2 -fPIE" \
+ "C" \
+ {} \
+ "-Wl,-R,tmpdir tmpdir/pr32690.so" \
+ ] \
]
}
diff --git a/ld/testsuite/ld-elf/pr32690.h b/ld/testsuite/ld-elf/pr32690.h
new file mode 100644
index 0000000..dff2d7d
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr32690.h
@@ -0,0 +1,17 @@
+struct data1
+{
+ char c[0x1000];
+} __attribute__ ((aligned (128)));
+
+struct data2
+{
+ char c[872];
+};
+
+extern const struct data1 d1[];
+extern const struct data2 d2;
+extern const char c1[];
+
+extern const int var0;
+extern const int var1;
+extern const int var2;
diff --git a/ld/testsuite/ld-elf/pr32690a.c b/ld/testsuite/ld-elf/pr32690a.c
new file mode 100644
index 0000000..e7150d4
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr32690a.c
@@ -0,0 +1,1297 @@
+#include <stdio.h>
+#include <string.h>
+#include "pr32690.h"
+
+static const char * const phdr_types[] =
+{
+ "PT_NULL", "PT_LOAD", "PT_DYNAMIC", "PT_PHDR"
+};
+
+int
+main (int argc, char **argv)
+{
+ unsigned int i = 0, j;
+ i += d1[0].c[0] + c1[0];
+ i += d2.c[0];
+
+ extern void func0 (void);
+ func0 ();
+
+ extern void func1 (void);
+ func1 ();
+
+ extern void func2 (void);
+ func2 ();
+
+ extern void func3 (void);
+ func3 ();
+
+ extern void func4 (void);
+ func4 ();
+
+ extern void func5 (void);
+ func5 ();
+
+ extern void func6 (void);
+ func6 ();
+
+ extern void func7 (void);
+ func7 ();
+
+ extern void func8 (void);
+ func8 ();
+
+ extern void func9 (void);
+ func9 ();
+
+ extern void func10 (void);
+ func10 ();
+
+ extern void func11 (void);
+ func11 ();
+
+ extern void func12 (void);
+ func12 ();
+
+ extern void func13 (void);
+ func13 ();
+
+ extern void func14 (void);
+ func14 ();
+
+ extern void func15 (void);
+ func15 ();
+
+ extern void func16 (void);
+ func16 ();
+
+ extern void func17 (void);
+ func17 ();
+
+ extern void func18 (void);
+ func18 ();
+
+ extern void func19 (void);
+ func19 ();
+
+ extern void func20 (void);
+ func20 ();
+
+ extern void func21 (void);
+ func21 ();
+
+ extern void func22 (void);
+ func22 ();
+
+ extern void func23 (void);
+ func23 ();
+
+ extern void func24 (void);
+ func24 ();
+
+ extern void func25 (void);
+ func25 ();
+
+ extern void func26 (void);
+ func26 ();
+
+ extern void func27 (void);
+ func27 ();
+
+ extern void func28 (void);
+ func28 ();
+
+ extern void func29 (void);
+ func29 ();
+
+ extern void func30 (void);
+ func30 ();
+
+ extern void func31 (void);
+ func31 ();
+
+ extern void func32 (void);
+ func32 ();
+
+ extern void func33 (void);
+ func33 ();
+
+ extern void func34 (void);
+ func34 ();
+
+ extern void func35 (void);
+ func35 ();
+
+ extern void func36 (void);
+ func36 ();
+
+ extern void func37 (void);
+ func37 ();
+
+ extern void func38 (void);
+ func38 ();
+
+ extern void func39 (void);
+ func39 ();
+
+ extern void func40 (void);
+ func40 ();
+
+ extern void func41 (void);
+ func41 ();
+
+ extern void func42 (void);
+ func42 ();
+
+ extern void func43 (void);
+ func43 ();
+
+ extern void func44 (void);
+ func44 ();
+
+ extern void func45 (void);
+ func45 ();
+
+ extern void func46 (void);
+ func46 ();
+
+ extern void func47 (void);
+ func47 ();
+
+ extern void func48 (void);
+ func48 ();
+
+ extern void func49 (void);
+ func49 ();
+
+ extern void func50 (void);
+ func50 ();
+
+ extern void func51 (void);
+ func51 ();
+
+ extern void func52 (void);
+ func52 ();
+
+ extern void func53 (void);
+ func53 ();
+
+ extern void func54 (void);
+ func54 ();
+
+ extern void func55 (void);
+ func55 ();
+
+ extern void func56 (void);
+ func56 ();
+
+ extern void func57 (void);
+ func57 ();
+
+ extern void func58 (void);
+ func58 ();
+
+ extern void func59 (void);
+ func59 ();
+
+ extern void func60 (void);
+ func60 ();
+
+ extern void func61 (void);
+ func61 ();
+
+ extern void func62 (void);
+ func62 ();
+
+ extern void func63 (void);
+ func63 ();
+
+ extern void func64 (void);
+ func64 ();
+
+ extern void func65 (void);
+ func65 ();
+
+ extern void func66 (void);
+ func66 ();
+
+ extern void func67 (void);
+ func67 ();
+
+ extern void func68 (void);
+ func68 ();
+
+ extern void func69 (void);
+ func69 ();
+
+ extern void func70 (void);
+ func70 ();
+
+ extern void func71 (void);
+ func71 ();
+
+ extern void func72 (void);
+ func72 ();
+
+ extern void func73 (void);
+ func73 ();
+
+ extern void func74 (void);
+ func74 ();
+
+ extern void func75 (void);
+ func75 ();
+
+ extern void func76 (void);
+ func76 ();
+
+ extern void func77 (void);
+ func77 ();
+
+ extern void func78 (void);
+ func78 ();
+
+ extern void func79 (void);
+ func79 ();
+
+ extern void func80 (void);
+ func80 ();
+
+ extern void func81 (void);
+ func81 ();
+
+ extern void func82 (void);
+ func82 ();
+
+ extern void func83 (void);
+ func83 ();
+
+ extern void func84 (void);
+ func84 ();
+
+ extern void func85 (void);
+ func85 ();
+
+ extern void func86 (void);
+ func86 ();
+
+ extern void func87 (void);
+ func87 ();
+
+ extern void func88 (void);
+ func88 ();
+
+ extern void func89 (void);
+ func89 ();
+
+ extern void func90 (void);
+ func90 ();
+
+ extern void func91 (void);
+ func91 ();
+
+ extern void func92 (void);
+ func92 ();
+
+ extern void func93 (void);
+ func93 ();
+
+ extern void func94 (void);
+ func94 ();
+
+ extern void func95 (void);
+ func95 ();
+
+ extern void func96 (void);
+ func96 ();
+
+ extern void func97 (void);
+ func97 ();
+
+ extern void func98 (void);
+ func98 ();
+
+ extern void func99 (void);
+ func99 ();
+
+ extern void func100 (void);
+ func100 ();
+
+ extern void func101 (void);
+ func101 ();
+
+ extern void func102 (void);
+ func102 ();
+
+ extern void func103 (void);
+ func103 ();
+
+ extern void func104 (void);
+ func104 ();
+
+ extern void func105 (void);
+ func105 ();
+
+ extern void func106 (void);
+ func106 ();
+
+ extern void func107 (void);
+ func107 ();
+
+ extern void func108 (void);
+ func108 ();
+
+ extern void func109 (void);
+ func109 ();
+
+ extern void func110 (void);
+ func110 ();
+
+ extern void func111 (void);
+ func111 ();
+
+ extern void func112 (void);
+ func112 ();
+
+ extern void func113 (void);
+ func113 ();
+
+ extern void func114 (void);
+ func114 ();
+
+ extern void func115 (void);
+ func115 ();
+
+ extern void func116 (void);
+ func116 ();
+
+ extern void func117 (void);
+ func117 ();
+
+ extern void func118 (void);
+ func118 ();
+
+ extern void func119 (void);
+ func119 ();
+
+ extern void func120 (void);
+ func120 ();
+
+ extern void func121 (void);
+ func121 ();
+
+ extern void func122 (void);
+ func122 ();
+
+ extern void func123 (void);
+ func123 ();
+
+ extern void func124 (void);
+ func124 ();
+
+ extern void func125 (void);
+ func125 ();
+
+ extern void func126 (void);
+ func126 ();
+
+ extern void func127 (void);
+ func127 ();
+
+ extern void func128 (void);
+ func128 ();
+
+ extern void func129 (void);
+ func129 ();
+
+ extern void func130 (void);
+ func130 ();
+
+ extern void func131 (void);
+ func131 ();
+
+ extern void func132 (void);
+ func132 ();
+
+ extern void func133 (void);
+ func133 ();
+
+ extern void func134 (void);
+ func134 ();
+
+ extern void func135 (void);
+ func135 ();
+
+ extern void func136 (void);
+ func136 ();
+
+ extern void func137 (void);
+ func137 ();
+
+ extern void func138 (void);
+ func138 ();
+
+ extern void func139 (void);
+ func139 ();
+
+ extern void func140 (void);
+ func140 ();
+
+ extern void func141 (void);
+ func141 ();
+
+ extern void func142 (void);
+ func142 ();
+
+ extern void func143 (void);
+ func143 ();
+
+ extern void func144 (void);
+ func144 ();
+
+ extern void func145 (void);
+ func145 ();
+
+ extern void func146 (void);
+ func146 ();
+
+ extern void func147 (void);
+ func147 ();
+
+ extern void func148 (void);
+ func148 ();
+
+ extern void func149 (void);
+ func149 ();
+
+ extern void func150 (void);
+ func150 ();
+
+ extern void func151 (void);
+ func151 ();
+
+ extern void func152 (void);
+ func152 ();
+
+ extern void func153 (void);
+ func153 ();
+
+ extern void func154 (void);
+ func154 ();
+
+ extern void func155 (void);
+ func155 ();
+
+ extern void func156 (void);
+ func156 ();
+
+ extern void func157 (void);
+ func157 ();
+
+ extern void func158 (void);
+ func158 ();
+
+ extern void func159 (void);
+ func159 ();
+
+ extern void func160 (void);
+ func160 ();
+
+ extern void func161 (void);
+ func161 ();
+
+ extern void func162 (void);
+ func162 ();
+
+ extern void func163 (void);
+ func163 ();
+
+ extern void func164 (void);
+ func164 ();
+
+ extern void func165 (void);
+ func165 ();
+
+ extern void func166 (void);
+ func166 ();
+
+ extern void func167 (void);
+ func167 ();
+
+ extern void func168 (void);
+ func168 ();
+
+ extern void func169 (void);
+ func169 ();
+
+ extern void func170 (void);
+ func170 ();
+
+ extern void func171 (void);
+ func171 ();
+
+ extern void func172 (void);
+ func172 ();
+
+ extern void func173 (void);
+ func173 ();
+
+ extern void func174 (void);
+ func174 ();
+
+ extern void func175 (void);
+ func175 ();
+
+ extern void func176 (void);
+ func176 ();
+
+ extern void func177 (void);
+ func177 ();
+
+ extern void func178 (void);
+ func178 ();
+
+ extern void func179 (void);
+ func179 ();
+
+ extern void func180 (void);
+ func180 ();
+
+ extern void func181 (void);
+ func181 ();
+
+ extern void func182 (void);
+ func182 ();
+
+ extern void func183 (void);
+ func183 ();
+
+ extern void func184 (void);
+ func184 ();
+
+ extern void func185 (void);
+ func185 ();
+
+ extern void func186 (void);
+ func186 ();
+
+ extern void func187 (void);
+ func187 ();
+
+ extern void func188 (void);
+ func188 ();
+
+ extern void func189 (void);
+ func189 ();
+
+ extern void func190 (void);
+ func190 ();
+
+ extern void func191 (void);
+ func191 ();
+
+ extern void func192 (void);
+ func192 ();
+
+ extern void func193 (void);
+ func193 ();
+
+ extern void func194 (void);
+ func194 ();
+
+ extern void func195 (void);
+ func195 ();
+
+ extern void func196 (void);
+ func196 ();
+
+ extern void func197 (void);
+ func197 ();
+
+ extern void func198 (void);
+ func198 ();
+
+ extern void func199 (void);
+ func199 ();
+
+ extern void func200 (void);
+ func200 ();
+
+ extern void func201 (void);
+ func201 ();
+
+ extern void func202 (void);
+ func202 ();
+
+ extern void func203 (void);
+ func203 ();
+
+ extern void func204 (void);
+ func204 ();
+
+ extern void func205 (void);
+ func205 ();
+
+ extern void func206 (void);
+ func206 ();
+
+ extern void func207 (void);
+ func207 ();
+
+ extern void func208 (void);
+ func208 ();
+
+ extern void func209 (void);
+ func209 ();
+
+ extern void func210 (void);
+ func210 ();
+
+ extern void func211 (void);
+ func211 ();
+
+ extern void func212 (void);
+ func212 ();
+
+ extern void func213 (void);
+ func213 ();
+
+ extern void func214 (void);
+ func214 ();
+
+ extern void func215 (void);
+ func215 ();
+
+ extern void func216 (void);
+ func216 ();
+
+ extern void func217 (void);
+ func217 ();
+
+ extern void func218 (void);
+ func218 ();
+
+ extern void func219 (void);
+ func219 ();
+
+ extern void func220 (void);
+ func220 ();
+
+ extern void func221 (void);
+ func221 ();
+
+ extern void func222 (void);
+ func222 ();
+
+ extern void func223 (void);
+ func223 ();
+
+ extern void func224 (void);
+ func224 ();
+
+ extern void func225 (void);
+ func225 ();
+
+ extern void func226 (void);
+ func226 ();
+
+ extern void func227 (void);
+ func227 ();
+
+ extern void func228 (void);
+ func228 ();
+
+ extern void func229 (void);
+ func229 ();
+
+ extern void func230 (void);
+ func230 ();
+
+ extern void func231 (void);
+ func231 ();
+
+ extern void func232 (void);
+ func232 ();
+
+ extern void func233 (void);
+ func233 ();
+
+ extern void func234 (void);
+ func234 ();
+
+ extern void func235 (void);
+ func235 ();
+
+ extern void func236 (void);
+ func236 ();
+
+ extern void func237 (void);
+ func237 ();
+
+ extern void func238 (void);
+ func238 ();
+
+ extern void func239 (void);
+ func239 ();
+
+ extern void func240 (void);
+ func240 ();
+
+ extern void func241 (void);
+ func241 ();
+
+ extern void func242 (void);
+ func242 ();
+
+ extern void func243 (void);
+ func243 ();
+
+ extern void func244 (void);
+ func244 ();
+
+ extern void func245 (void);
+ func245 ();
+
+ extern void func246 (void);
+ func246 ();
+
+ extern void func247 (void);
+ func247 ();
+
+ extern void func248 (void);
+ func248 ();
+
+ extern void func249 (void);
+ func249 ();
+
+ extern void func250 (void);
+ func250 ();
+
+ extern void func251 (void);
+ func251 ();
+
+ extern void func252 (void);
+ func252 ();
+
+ extern void func253 (void);
+ func253 ();
+
+ extern void func254 (void);
+ func254 ();
+
+ extern void func255 (void);
+ func255 ();
+
+ extern void func256 (void);
+ func256 ();
+
+ extern void func257 (void);
+ func257 ();
+
+ extern void func258 (void);
+ func258 ();
+
+ extern void func259 (void);
+ func259 ();
+
+ extern void func260 (void);
+ func260 ();
+
+ extern void func261 (void);
+ func261 ();
+
+ extern void func262 (void);
+ func262 ();
+
+ extern void func263 (void);
+ func263 ();
+
+ extern void func264 (void);
+ func264 ();
+
+ extern void func265 (void);
+ func265 ();
+
+ extern void func266 (void);
+ func266 ();
+
+ extern void func267 (void);
+ func267 ();
+
+ extern void func268 (void);
+ func268 ();
+
+ extern void func269 (void);
+ func269 ();
+
+ extern void func270 (void);
+ func270 ();
+
+ extern void func271 (void);
+ func271 ();
+
+ extern void func272 (void);
+ func272 ();
+
+ extern void func273 (void);
+ func273 ();
+
+ extern void func274 (void);
+ func274 ();
+
+ extern void func275 (void);
+ func275 ();
+
+ extern void func276 (void);
+ func276 ();
+
+ extern void func277 (void);
+ func277 ();
+
+ extern void func278 (void);
+ func278 ();
+
+ extern void func279 (void);
+ func279 ();
+
+ extern void func280 (void);
+ func280 ();
+
+ extern void func281 (void);
+ func281 ();
+
+ extern void func282 (void);
+ func282 ();
+
+ extern void func283 (void);
+ func283 ();
+
+ extern void func284 (void);
+ func284 ();
+
+ extern void func285 (void);
+ func285 ();
+
+ extern void func286 (void);
+ func286 ();
+
+ extern void func287 (void);
+ func287 ();
+
+ extern void func288 (void);
+ func288 ();
+
+ extern void func289 (void);
+ func289 ();
+
+ extern void func290 (void);
+ func290 ();
+
+ extern void func291 (void);
+ func291 ();
+
+ extern void func292 (void);
+ func292 ();
+
+ extern void func293 (void);
+ func293 ();
+
+ extern void func294 (void);
+ func294 ();
+
+ extern void func295 (void);
+ func295 ();
+
+ extern void func296 (void);
+ func296 ();
+
+ extern void func297 (void);
+ func297 ();
+
+ extern void func298 (void);
+ func298 ();
+
+ extern void func299 (void);
+ func299 ();
+
+ extern void func300 (void);
+ func300 ();
+
+ extern void func301 (void);
+ func301 ();
+
+ extern void func302 (void);
+ func302 ();
+
+ extern void func303 (void);
+ func303 ();
+
+ extern void func304 (void);
+ func304 ();
+
+ extern void func305 (void);
+ func305 ();
+
+ extern void func306 (void);
+ func306 ();
+
+ extern void func307 (void);
+ func307 ();
+
+ extern void func308 (void);
+ func308 ();
+
+ extern void func309 (void);
+ func309 ();
+
+ extern void func310 (void);
+ func310 ();
+
+ extern void func311 (void);
+ func311 ();
+
+ extern void func312 (void);
+ func312 ();
+
+ extern void func313 (void);
+ func313 ();
+
+ extern void func314 (void);
+ func314 ();
+
+ extern void func315 (void);
+ func315 ();
+
+ extern void func316 (void);
+ func316 ();
+
+ extern void func317 (void);
+ func317 ();
+
+ extern void func318 (void);
+ func318 ();
+
+ extern void func319 (void);
+ func319 ();
+
+ extern void func320 (void);
+ func320 ();
+
+ extern void func321 (void);
+ func321 ();
+
+ extern void func322 (void);
+ func322 ();
+
+ extern void func323 (void);
+ func323 ();
+
+ extern void func324 (void);
+ func324 ();
+
+ extern void func325 (void);
+ func325 ();
+
+ extern void func326 (void);
+ func326 ();
+
+ extern void func327 (void);
+ func327 ();
+
+ extern void func328 (void);
+ func328 ();
+
+ extern void func329 (void);
+ func329 ();
+
+ extern void func330 (void);
+ func330 ();
+
+ extern void func331 (void);
+ func331 ();
+
+ extern void func332 (void);
+ func332 ();
+
+ extern void func333 (void);
+ func333 ();
+
+ extern void func334 (void);
+ func334 ();
+
+ extern void func335 (void);
+ func335 ();
+
+ extern void func336 (void);
+ func336 ();
+
+ extern void func337 (void);
+ func337 ();
+
+ extern void func338 (void);
+ func338 ();
+
+ extern void func339 (void);
+ func339 ();
+
+ extern void func340 (void);
+ func340 ();
+
+ extern void func341 (void);
+ func341 ();
+
+ extern void func342 (void);
+ func342 ();
+
+ extern void func343 (void);
+ func343 ();
+
+ extern void func344 (void);
+ func344 ();
+
+ extern void func345 (void);
+ func345 ();
+
+ extern void func346 (void);
+ func346 ();
+
+ extern void func347 (void);
+ func347 ();
+
+ extern void func348 (void);
+ func348 ();
+
+ extern void func349 (void);
+ func349 ();
+
+ extern void func350 (void);
+ func350 ();
+
+ extern void func351 (void);
+ func351 ();
+
+ extern void func352 (void);
+ func352 ();
+
+ extern void func353 (void);
+ func353 ();
+
+ extern void func354 (void);
+ func354 ();
+
+ extern void func355 (void);
+ func355 ();
+
+ extern void func356 (void);
+ func356 ();
+
+ extern void func357 (void);
+ func357 ();
+
+ extern void func358 (void);
+ func358 ();
+
+ extern void func359 (void);
+ func359 ();
+
+ extern void func360 (void);
+ func360 ();
+
+ extern void func361 (void);
+ func361 ();
+
+ extern void func362 (void);
+ func362 ();
+
+ extern void func363 (void);
+ func363 ();
+
+ extern void func364 (void);
+ func364 ();
+
+ extern void func365 (void);
+ func365 ();
+
+ extern void func366 (void);
+ func366 ();
+
+ extern void func367 (void);
+ func367 ();
+
+ extern void func368 (void);
+ func368 ();
+
+ extern void func369 (void);
+ func369 ();
+
+ extern void func370 (void);
+ func370 ();
+
+ extern void func371 (void);
+ func371 ();
+
+ extern void func372 (void);
+ func372 ();
+
+ extern void func373 (void);
+ func373 ();
+
+ extern void func374 (void);
+ func374 ();
+
+ extern void func375 (void);
+ func375 ();
+
+ extern void func376 (void);
+ func376 ();
+
+ extern void func377 (void);
+ func377 ();
+
+ extern void func378 (void);
+ func378 ();
+
+ extern void func379 (void);
+ func379 ();
+
+ extern void func380 (void);
+ func380 ();
+
+ extern void func381 (void);
+ func381 ();
+
+ extern void func382 (void);
+ func382 ();
+
+ extern void func383 (void);
+ func383 ();
+
+ extern void func384 (void);
+ func384 ();
+
+ extern void func385 (void);
+ func385 ();
+
+ extern void func386 (void);
+ func386 ();
+
+ extern void func387 (void);
+ func387 ();
+
+ extern void func388 (void);
+ func388 ();
+
+ extern void func389 (void);
+ func389 ();
+
+ extern void func390 (void);
+ func390 ();
+
+ extern void func391 (void);
+ func391 ();
+
+ extern void func392 (void);
+ func392 ();
+
+ extern void func393 (void);
+ func393 ();
+
+ extern void func394 (void);
+ func394 ();
+
+ extern void func395 (void);
+ func395 ();
+
+ extern void func396 (void);
+ func396 ();
+
+ extern void func397 (void);
+ func397 ();
+
+ extern void func398 (void);
+ func398 ();
+
+ extern void func399 (void);
+ func399 ();
+
+ extern void func400 (void);
+ func400 ();
+
+ extern void func401 (void);
+ func401 ();
+
+ extern void func402 (void);
+ func402 ();
+
+ extern void func403 (void);
+ func403 ();
+
+ extern void func404 (void);
+ func404 ();
+
+ extern void func405 (void);
+ func405 ();
+
+ extern void func406 (void);
+ func406 ();
+
+ extern void func407 (void);
+ func407 ();
+
+ extern void func408 (void);
+ func408 ();
+
+ extern void func409 (void);
+ func409 ();
+
+ extern void func410 (void);
+ func410 ();
+
+ extern void func411 (void);
+ func411 ();
+
+ extern void func412 (void);
+ func412 ();
+
+ extern void func413 (void);
+ func413 ();
+
+ extern void func414 (void);
+ func414 ();
+
+ extern void func415 (void);
+ func415 ();
+
+ extern void func416 (void);
+ func416 ();
+
+ extern void func417 (void);
+ func417 ();
+
+ extern void func418 (void);
+ func418 ();
+
+ extern void func419 (void);
+ func419 ();
+
+ extern void func420 (void);
+ func420 ();
+
+ extern void func421 (void);
+ func421 ();
+
+ i += var0;
+ i += var1;
+ i += var2;
+
+ for (j = 0;
+ j < sizeof phdr_types / sizeof phdr_types[0];
+ j++)
+ if (strcmp (argv[0], phdr_types[j]) == 0)
+ i++;
+
+ if (i == 3)
+ printf ("PASS\n");
+
+ return 0;
+}
diff --git a/ld/testsuite/ld-elf/pr32690b.c b/ld/testsuite/ld-elf/pr32690b.c
new file mode 100644
index 0000000..5c0dab8
--- /dev/null
+++ b/ld/testsuite/ld-elf/pr32690b.c
@@ -0,0 +1,2119 @@
+#include "pr32690.h"
+
+const struct data1 d1[44];
+const char c1[2748];
+
+const int var0 = 1;
+const int var1 = 1;
+const int var2 = 1;
+const struct data2 d2;
+
+void
+func0 (void)
+{
+}
+
+void
+func1 (void)
+{
+}
+
+void
+func2 (void)
+{
+}
+
+void
+func3 (void)
+{
+}
+
+void
+func4 (void)
+{
+}
+
+void
+func5 (void)
+{
+}
+
+void
+func6 (void)
+{
+}
+
+void
+func7 (void)
+{
+}
+
+void
+func8 (void)
+{
+}
+
+void
+func9 (void)
+{
+}
+
+void
+func10 (void)
+{
+}
+
+void
+func11 (void)
+{
+}
+
+void
+func12 (void)
+{
+}
+
+void
+func13 (void)
+{
+}
+
+void
+func14 (void)
+{
+}
+
+void
+func15 (void)
+{
+}
+
+void
+func16 (void)
+{
+}
+
+void
+func17 (void)
+{
+}
+
+void
+func18 (void)
+{
+}
+
+void
+func19 (void)
+{
+}
+
+void
+func20 (void)
+{
+}
+
+void
+func21 (void)
+{
+}
+
+void
+func22 (void)
+{
+}
+
+void
+func23 (void)
+{
+}
+
+void
+func24 (void)
+{
+}
+
+void
+func25 (void)
+{
+}
+
+void
+func26 (void)
+{
+}
+
+void
+func27 (void)
+{
+}
+
+void
+func28 (void)
+{
+}
+
+void
+func29 (void)
+{
+}
+
+void
+func30 (void)
+{
+}
+
+void
+func31 (void)
+{
+}
+
+void
+func32 (void)
+{
+}
+
+void
+func33 (void)
+{
+}
+
+void
+func34 (void)
+{
+}
+
+void
+func35 (void)
+{
+}
+
+void
+func36 (void)
+{
+}
+
+void
+func37 (void)
+{
+}
+
+void
+func38 (void)
+{
+}
+
+void
+func39 (void)
+{
+}
+
+void
+func40 (void)
+{
+}
+
+void
+func41 (void)
+{
+}
+
+void
+func42 (void)
+{
+}
+
+void
+func43 (void)
+{
+}
+
+void
+func44 (void)
+{
+}
+
+void
+func45 (void)
+{
+}
+
+void
+func46 (void)
+{
+}
+
+void
+func47 (void)
+{
+}
+
+void
+func48 (void)
+{
+}
+
+void
+func49 (void)
+{
+}
+
+void
+func50 (void)
+{
+}
+
+void
+func51 (void)
+{
+}
+
+void
+func52 (void)
+{
+}
+
+void
+func53 (void)
+{
+}
+
+void
+func54 (void)
+{
+}
+
+void
+func55 (void)
+{
+}
+
+void
+func56 (void)
+{
+}
+
+void
+func57 (void)
+{
+}
+
+void
+func58 (void)
+{
+}
+
+void
+func59 (void)
+{
+}
+
+void
+func60 (void)
+{
+}
+
+void
+func61 (void)
+{
+}
+
+void
+func62 (void)
+{
+}
+
+void
+func63 (void)
+{
+}
+
+void
+func64 (void)
+{
+}
+
+void
+func65 (void)
+{
+}
+
+void
+func66 (void)
+{
+}
+
+void
+func67 (void)
+{
+}
+
+void
+func68 (void)
+{
+}
+
+void
+func69 (void)
+{
+}
+
+void
+func70 (void)
+{
+}
+
+void
+func71 (void)
+{
+}
+
+void
+func72 (void)
+{
+}
+
+void
+func73 (void)
+{
+}
+
+void
+func74 (void)
+{
+}
+
+void
+func75 (void)
+{
+}
+
+void
+func76 (void)
+{
+}
+
+void
+func77 (void)
+{
+}
+
+void
+func78 (void)
+{
+}
+
+void
+func79 (void)
+{
+}
+
+void
+func80 (void)
+{
+}
+
+void
+func81 (void)
+{
+}
+
+void
+func82 (void)
+{
+}
+
+void
+func83 (void)
+{
+}
+
+void
+func84 (void)
+{
+}
+
+void
+func85 (void)
+{
+}
+
+void
+func86 (void)
+{
+}
+
+void
+func87 (void)
+{
+}
+
+void
+func88 (void)
+{
+}
+
+void
+func89 (void)
+{
+}
+
+void
+func90 (void)
+{
+}
+
+void
+func91 (void)
+{
+}
+
+void
+func92 (void)
+{
+}
+
+void
+func93 (void)
+{
+}
+
+void
+func94 (void)
+{
+}
+
+void
+func95 (void)
+{
+}
+
+void
+func96 (void)
+{
+}
+
+void
+func97 (void)
+{
+}
+
+void
+func98 (void)
+{
+}
+
+void
+func99 (void)
+{
+}
+
+void
+func100 (void)
+{
+}
+
+void
+func101 (void)
+{
+}
+
+void
+func102 (void)
+{
+}
+
+void
+func103 (void)
+{
+}
+
+void
+func104 (void)
+{
+}
+
+void
+func105 (void)
+{
+}
+
+void
+func106 (void)
+{
+}
+
+void
+func107 (void)
+{
+}
+
+void
+func108 (void)
+{
+}
+
+void
+func109 (void)
+{
+}
+
+void
+func110 (void)
+{
+}
+
+void
+func111 (void)
+{
+}
+
+void
+func112 (void)
+{
+}
+
+void
+func113 (void)
+{
+}
+
+void
+func114 (void)
+{
+}
+
+void
+func115 (void)
+{
+}
+
+void
+func116 (void)
+{
+}
+
+void
+func117 (void)
+{
+}
+
+void
+func118 (void)
+{
+}
+
+void
+func119 (void)
+{
+}
+
+void
+func120 (void)
+{
+}
+
+void
+func121 (void)
+{
+}
+
+void
+func122 (void)
+{
+}
+
+void
+func123 (void)
+{
+}
+
+void
+func124 (void)
+{
+}
+
+void
+func125 (void)
+{
+}
+
+void
+func126 (void)
+{
+}
+
+void
+func127 (void)
+{
+}
+
+void
+func128 (void)
+{
+}
+
+void
+func129 (void)
+{
+}
+
+void
+func130 (void)
+{
+}
+
+void
+func131 (void)
+{
+}
+
+void
+func132 (void)
+{
+}
+
+void
+func133 (void)
+{
+}
+
+void
+func134 (void)
+{
+}
+
+void
+func135 (void)
+{
+}
+
+void
+func136 (void)
+{
+}
+
+void
+func137 (void)
+{
+}
+
+void
+func138 (void)
+{
+}
+
+void
+func139 (void)
+{
+}
+
+void
+func140 (void)
+{
+}
+
+void
+func141 (void)
+{
+}
+
+void
+func142 (void)
+{
+}
+
+void
+func143 (void)
+{
+}
+
+void
+func144 (void)
+{
+}
+
+void
+func145 (void)
+{
+}
+
+void
+func146 (void)
+{
+}
+
+void
+func147 (void)
+{
+}
+
+void
+func148 (void)
+{
+}
+
+void
+func149 (void)
+{
+}
+
+void
+func150 (void)
+{
+}
+
+void
+func151 (void)
+{
+}
+
+void
+func152 (void)
+{
+}
+
+void
+func153 (void)
+{
+}
+
+void
+func154 (void)
+{
+}
+
+void
+func155 (void)
+{
+}
+
+void
+func156 (void)
+{
+}
+
+void
+func157 (void)
+{
+}
+
+void
+func158 (void)
+{
+}
+
+void
+func159 (void)
+{
+}
+
+void
+func160 (void)
+{
+}
+
+void
+func161 (void)
+{
+}
+
+void
+func162 (void)
+{
+}
+
+void
+func163 (void)
+{
+}
+
+void
+func164 (void)
+{
+}
+
+void
+func165 (void)
+{
+}
+
+void
+func166 (void)
+{
+}
+
+void
+func167 (void)
+{
+}
+
+void
+func168 (void)
+{
+}
+
+void
+func169 (void)
+{
+}
+
+void
+func170 (void)
+{
+}
+
+void
+func171 (void)
+{
+}
+
+void
+func172 (void)
+{
+}
+
+void
+func173 (void)
+{
+}
+
+void
+func174 (void)
+{
+}
+
+void
+func175 (void)
+{
+}
+
+void
+func176 (void)
+{
+}
+
+void
+func177 (void)
+{
+}
+
+void
+func178 (void)
+{
+}
+
+void
+func179 (void)
+{
+}
+
+void
+func180 (void)
+{
+}
+
+void
+func181 (void)
+{
+}
+
+void
+func182 (void)
+{
+}
+
+void
+func183 (void)
+{
+}
+
+void
+func184 (void)
+{
+}
+
+void
+func185 (void)
+{
+}
+
+void
+func186 (void)
+{
+}
+
+void
+func187 (void)
+{
+}
+
+void
+func188 (void)
+{
+}
+
+void
+func189 (void)
+{
+}
+
+void
+func190 (void)
+{
+}
+
+void
+func191 (void)
+{
+}
+
+void
+func192 (void)
+{
+}
+
+void
+func193 (void)
+{
+}
+
+void
+func194 (void)
+{
+}
+
+void
+func195 (void)
+{
+}
+
+void
+func196 (void)
+{
+}
+
+void
+func197 (void)
+{
+}
+
+void
+func198 (void)
+{
+}
+
+void
+func199 (void)
+{
+}
+
+void
+func200 (void)
+{
+}
+
+void
+func201 (void)
+{
+}
+
+void
+func202 (void)
+{
+}
+
+void
+func203 (void)
+{
+}
+
+void
+func204 (void)
+{
+}
+
+void
+func205 (void)
+{
+}
+
+void
+func206 (void)
+{
+}
+
+void
+func207 (void)
+{
+}
+
+void
+func208 (void)
+{
+}
+
+void
+func209 (void)
+{
+}
+
+void
+func210 (void)
+{
+}
+
+void
+func211 (void)
+{
+}
+
+void
+func212 (void)
+{
+}
+
+void
+func213 (void)
+{
+}
+
+void
+func214 (void)
+{
+}
+
+void
+func215 (void)
+{
+}
+
+void
+func216 (void)
+{
+}
+
+void
+func217 (void)
+{
+}
+
+void
+func218 (void)
+{
+}
+
+void
+func219 (void)
+{
+}
+
+void
+func220 (void)
+{
+}
+
+void
+func221 (void)
+{
+}
+
+void
+func222 (void)
+{
+}
+
+void
+func223 (void)
+{
+}
+
+void
+func224 (void)
+{
+}
+
+void
+func225 (void)
+{
+}
+
+void
+func226 (void)
+{
+}
+
+void
+func227 (void)
+{
+}
+
+void
+func228 (void)
+{
+}
+
+void
+func229 (void)
+{
+}
+
+void
+func230 (void)
+{
+}
+
+void
+func231 (void)
+{
+}
+
+void
+func232 (void)
+{
+}
+
+void
+func233 (void)
+{
+}
+
+void
+func234 (void)
+{
+}
+
+void
+func235 (void)
+{
+}
+
+void
+func236 (void)
+{
+}
+
+void
+func237 (void)
+{
+}
+
+void
+func238 (void)
+{
+}
+
+void
+func239 (void)
+{
+}
+
+void
+func240 (void)
+{
+}
+
+void
+func241 (void)
+{
+}
+
+void
+func242 (void)
+{
+}
+
+void
+func243 (void)
+{
+}
+
+void
+func244 (void)
+{
+}
+
+void
+func245 (void)
+{
+}
+
+void
+func246 (void)
+{
+}
+
+void
+func247 (void)
+{
+}
+
+void
+func248 (void)
+{
+}
+
+void
+func249 (void)
+{
+}
+
+void
+func250 (void)
+{
+}
+
+void
+func251 (void)
+{
+}
+
+void
+func252 (void)
+{
+}
+
+void
+func253 (void)
+{
+}
+
+void
+func254 (void)
+{
+}
+
+void
+func255 (void)
+{
+}
+
+void
+func256 (void)
+{
+}
+
+void
+func257 (void)
+{
+}
+
+void
+func258 (void)
+{
+}
+
+void
+func259 (void)
+{
+}
+
+void
+func260 (void)
+{
+}
+
+void
+func261 (void)
+{
+}
+
+void
+func262 (void)
+{
+}
+
+void
+func263 (void)
+{
+}
+
+void
+func264 (void)
+{
+}
+
+void
+func265 (void)
+{
+}
+
+void
+func266 (void)
+{
+}
+
+void
+func267 (void)
+{
+}
+
+void
+func268 (void)
+{
+}
+
+void
+func269 (void)
+{
+}
+
+void
+func270 (void)
+{
+}
+
+void
+func271 (void)
+{
+}
+
+void
+func272 (void)
+{
+}
+
+void
+func273 (void)
+{
+}
+
+void
+func274 (void)
+{
+}
+
+void
+func275 (void)
+{
+}
+
+void
+func276 (void)
+{
+}
+
+void
+func277 (void)
+{
+}
+
+void
+func278 (void)
+{
+}
+
+void
+func279 (void)
+{
+}
+
+void
+func280 (void)
+{
+}
+
+void
+func281 (void)
+{
+}
+
+void
+func282 (void)
+{
+}
+
+void
+func283 (void)
+{
+}
+
+void
+func284 (void)
+{
+}
+
+void
+func285 (void)
+{
+}
+
+void
+func286 (void)
+{
+}
+
+void
+func287 (void)
+{
+}
+
+void
+func288 (void)
+{
+}
+
+void
+func289 (void)
+{
+}
+
+void
+func290 (void)
+{
+}
+
+void
+func291 (void)
+{
+}
+
+void
+func292 (void)
+{
+}
+
+void
+func293 (void)
+{
+}
+
+void
+func294 (void)
+{
+}
+
+void
+func295 (void)
+{
+}
+
+void
+func296 (void)
+{
+}
+
+void
+func297 (void)
+{
+}
+
+void
+func298 (void)
+{
+}
+
+void
+func299 (void)
+{
+}
+
+void
+func300 (void)
+{
+}
+
+void
+func301 (void)
+{
+}
+
+void
+func302 (void)
+{
+}
+
+void
+func303 (void)
+{
+}
+
+void
+func304 (void)
+{
+}
+
+void
+func305 (void)
+{
+}
+
+void
+func306 (void)
+{
+}
+
+void
+func307 (void)
+{
+}
+
+void
+func308 (void)
+{
+}
+
+void
+func309 (void)
+{
+}
+
+void
+func310 (void)
+{
+}
+
+void
+func311 (void)
+{
+}
+
+void
+func312 (void)
+{
+}
+
+void
+func313 (void)
+{
+}
+
+void
+func314 (void)
+{
+}
+
+void
+func315 (void)
+{
+}
+
+void
+func316 (void)
+{
+}
+
+void
+func317 (void)
+{
+}
+
+void
+func318 (void)
+{
+}
+
+void
+func319 (void)
+{
+}
+
+void
+func320 (void)
+{
+}
+
+void
+func321 (void)
+{
+}
+
+void
+func322 (void)
+{
+}
+
+void
+func323 (void)
+{
+}
+
+void
+func324 (void)
+{
+}
+
+void
+func325 (void)
+{
+}
+
+void
+func326 (void)
+{
+}
+
+void
+func327 (void)
+{
+}
+
+void
+func328 (void)
+{
+}
+
+void
+func329 (void)
+{
+}
+
+void
+func330 (void)
+{
+}
+
+void
+func331 (void)
+{
+}
+
+void
+func332 (void)
+{
+}
+
+void
+func333 (void)
+{
+}
+
+void
+func334 (void)
+{
+}
+
+void
+func335 (void)
+{
+}
+
+void
+func336 (void)
+{
+}
+
+void
+func337 (void)
+{
+}
+
+void
+func338 (void)
+{
+}
+
+void
+func339 (void)
+{
+}
+
+void
+func340 (void)
+{
+}
+
+void
+func341 (void)
+{
+}
+
+void
+func342 (void)
+{
+}
+
+void
+func343 (void)
+{
+}
+
+void
+func344 (void)
+{
+}
+
+void
+func345 (void)
+{
+}
+
+void
+func346 (void)
+{
+}
+
+void
+func347 (void)
+{
+}
+
+void
+func348 (void)
+{
+}
+
+void
+func349 (void)
+{
+}
+
+void
+func350 (void)
+{
+}
+
+void
+func351 (void)
+{
+}
+
+void
+func352 (void)
+{
+}
+
+void
+func353 (void)
+{
+}
+
+void
+func354 (void)
+{
+}
+
+void
+func355 (void)
+{
+}
+
+void
+func356 (void)
+{
+}
+
+void
+func357 (void)
+{
+}
+
+void
+func358 (void)
+{
+}
+
+void
+func359 (void)
+{
+}
+
+void
+func360 (void)
+{
+}
+
+void
+func361 (void)
+{
+}
+
+void
+func362 (void)
+{
+}
+
+void
+func363 (void)
+{
+}
+
+void
+func364 (void)
+{
+}
+
+void
+func365 (void)
+{
+}
+
+void
+func366 (void)
+{
+}
+
+void
+func367 (void)
+{
+}
+
+void
+func368 (void)
+{
+}
+
+void
+func369 (void)
+{
+}
+
+void
+func370 (void)
+{
+}
+
+void
+func371 (void)
+{
+}
+
+void
+func372 (void)
+{
+}
+
+void
+func373 (void)
+{
+}
+
+void
+func374 (void)
+{
+}
+
+void
+func375 (void)
+{
+}
+
+void
+func376 (void)
+{
+}
+
+void
+func377 (void)
+{
+}
+
+void
+func378 (void)
+{
+}
+
+void
+func379 (void)
+{
+}
+
+void
+func380 (void)
+{
+}
+
+void
+func381 (void)
+{
+}
+
+void
+func382 (void)
+{
+}
+
+void
+func383 (void)
+{
+}
+
+void
+func384 (void)
+{
+}
+
+void
+func385 (void)
+{
+}
+
+void
+func386 (void)
+{
+}
+
+void
+func387 (void)
+{
+}
+
+void
+func388 (void)
+{
+}
+
+void
+func389 (void)
+{
+}
+
+void
+func390 (void)
+{
+}
+
+void
+func391 (void)
+{
+}
+
+void
+func392 (void)
+{
+}
+
+void
+func393 (void)
+{
+}
+
+void
+func394 (void)
+{
+}
+
+void
+func395 (void)
+{
+}
+
+void
+func396 (void)
+{
+}
+
+void
+func397 (void)
+{
+}
+
+void
+func398 (void)
+{
+}
+
+void
+func399 (void)
+{
+}
+
+void
+func400 (void)
+{
+}
+
+void
+func401 (void)
+{
+}
+
+void
+func402 (void)
+{
+}
+
+void
+func403 (void)
+{
+}
+
+void
+func404 (void)
+{
+}
+
+void
+func405 (void)
+{
+}
+
+void
+func406 (void)
+{
+}
+
+void
+func407 (void)
+{
+}
+
+void
+func408 (void)
+{
+}
+
+void
+func409 (void)
+{
+}
+
+void
+func410 (void)
+{
+}
+
+void
+func411 (void)
+{
+}
+
+void
+func412 (void)
+{
+}
+
+void
+func413 (void)
+{
+}
+
+void
+func414 (void)
+{
+}
+
+void
+func415 (void)
+{
+}
+
+void
+func416 (void)
+{
+}
+
+void
+func417 (void)
+{
+}
+
+void
+func418 (void)
+{
+}
+
+void
+func419 (void)
+{
+}
+
+void
+func420 (void)
+{
+}
+
+void
+func421 (void)
+{
+}