Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Xing Lin
qemu
Commits
644c433c
Commit
644c433c
authored
Mar 24, 2003
by
bellard
Browse files
ld.so load fix
git-svn-id:
svn://svn.savannah.nongnu.org/qemu/trunk@47
c046a42c-6fe2-441c-8c8c-71466251a162
parent
d691f669
Changes
3
Hide whitespace changes
Inline
Side-by-side
README
View file @
644c433c
...
...
@@ -23,8 +23,12 @@ libraries installed on your PC. For example:
./qemu -L / /bin/ls
* On non x86 CPUs, you need first to download at least an x86 glibc
(qemu-i386-glibc21.tar.gz on the qemu web page). Then you can launch
the precompiled 'ls' x86 executable:
(qemu-i386-glibc21.tar.gz on the qemu web page). Ensure that
LD_LIBRARY_PATH is not set:
unset LD_LIBRARY_PATH
Then you can launch the precompiled 'ls' x86 executable:
./qemu /usr/local/qemu-i386/bin/ls
...
...
linux-user/elfload.c
View file @
644c433c
...
...
@@ -360,9 +360,6 @@ static unsigned int * create_elf_tables(char *p, int argc, int envc,
put_user (tswapl(val), dlinfo++)
if
(
exec
)
{
/* Put this here for an ELF program interpreter */
struct
elf_phdr
*
eppnt
;
eppnt
=
(
struct
elf_phdr
*
)((
unsigned
long
)
exec
->
e_phoff
);
NEW_AUX_ENT
(
AT_PHDR
,
(
unsigned
int
)(
load_addr
+
exec
->
e_phoff
));
NEW_AUX_ENT
(
AT_PHENT
,
(
unsigned
int
)(
sizeof
(
struct
elf_phdr
)));
NEW_AUX_ENT
(
AT_PHNUM
,
(
unsigned
int
)(
exec
->
e_phnum
));
...
...
@@ -418,6 +415,9 @@ static unsigned long load_elf_interp(struct elfhdr * interp_elf_ex,
*/
load_addr
=
INTERP_LOADADDR
;
#ifdef BSWAP_NEEDED
bswap_ehdr
(
interp_elf_ex
);
#endif
/* First of all, some simple consistency checks */
if
((
interp_elf_ex
->
e_type
!=
ET_EXEC
&&
interp_elf_ex
->
e_type
!=
ET_DYN
)
||
...
...
@@ -425,6 +425,7 @@ static unsigned long load_elf_interp(struct elfhdr * interp_elf_ex,
return
~
0UL
;
}
/* Now read in all of the header information */
if
(
sizeof
(
struct
elf_phdr
)
*
interp_elf_ex
->
e_phnum
>
X86_PAGE_SIZE
)
...
...
@@ -452,7 +453,6 @@ static unsigned long load_elf_interp(struct elfhdr * interp_elf_ex,
(
char
*
)
elf_phdata
,
sizeof
(
struct
elf_phdr
)
*
interp_elf_ex
->
e_phnum
);
}
if
(
retval
<
0
)
{
perror
(
"load_elf_interp"
);
exit
(
-
1
);
...
...
qemu-doc.texi
View file @
644c433c
...
...
@@ -92,8 +92,15 @@ qemu -L / /bin/ls
@item On non x86 CPUs, you need first to download at least an x86 glibc
(@file
{
qemu-i386-glibc21.tar.gz
}
on the QEMU web page). Then you can
launch the precompiled @file
{
ls
}
x86 executable:
(@file
{
qemu-i386-glibc21.tar.gz
}
on the QEMU web page). Ensure that
@code
{
LD
_
LIBRARY
_
PATH
}
is not set:
@example
unset LD
_
LIBRARY
_
PATH
@end example
Then you can launch the precompiled @file
{
ls
}
x86 executable:
@example
qemu /usr/local/qemu-i386/bin/ls
@end example
...
...
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