Re: [yocto] [prelink-cross] Support x32 libx32 directory
On 10/2/16 6:18 PM, Khem Raj wrote: > Mark > > have we integrated this patch ? I have not yet. Continue to ping me, I should hopefully get to it this week. --Mark >> On Sep 14, 2016, at 4:23 PM, Joseph Myers wrote: >> >> Cross-prelink's prelink-rtld is missing suport for the /libx32 >> directory used with the x86_64 x32 ABI. This patch adds such support. >> >> 2016-09-14 Joseph Myers >> >> * src/rtld/rtld.c (load_ld_so_conf): Add argument use_x32. >> (main): Update call to load_ld_so_conf. >> >> diff --git a/src/rtld/rtld.c b/src/rtld/rtld.c >> index 8d7d760..2d72083 100644 >> --- a/src/rtld/rtld.c >> +++ b/src/rtld/rtld.c >> @@ -409,7 +409,7 @@ free_path (struct search_path *path) >> } >> >> void >> -load_ld_so_conf (int use_64bit, int use_mipsn32) >> +load_ld_so_conf (int use_64bit, int use_mipsn32, int use_x32) >> { >> int fd; >> FILE *conf; >> @@ -435,6 +435,14 @@ load_ld_so_conf (int use_64bit, int use_mipsn32) >> add_dir (&ld_dirs, "/usr/lib32/tls", strlen ("/usr/lib32/tls")); >> add_dir (&ld_dirs, "/usr/lib32", strlen ("/usr/lib32")); >> } >> + else if (use_x32) >> +{ >> + dst_LIB = "libx32"; >> + add_dir (&ld_dirs, "/libx32/tls", strlen ("/libx32/tls")); >> + add_dir (&ld_dirs, "/libx32", strlen ("/libx32")); >> + add_dir (&ld_dirs, "/usr/libx32/tls", strlen ("/usr/libx32/tls")); >> + add_dir (&ld_dirs, "/usr/libx32", strlen ("/usr/libx32")); >> +} >> else >> { >> dst_LIB = "lib"; >> @@ -1195,7 +1203,8 @@ main(int argc, char **argv) >> } >> >> load_ld_so_conf (gelf_getclass (dso->elf) == ELFCLASS64, >> -( dso->ehdr.e_machine == EM_MIPS) && ( dso->ehdr.e_flags & >> EF_MIPS_ABI2 ) ); >> +( dso->ehdr.e_machine == EM_MIPS) && ( dso->ehdr.e_flags & >> EF_MIPS_ABI2 ), >> +dso->ehdr.e_machine == EM_X86_64 && gelf_getclass (dso->elf) == >> ELFCLASS32); >> >> if (multiple) >> printf ("%s:\n", argv[remaining]); >> >> -- >> Joseph S. Myers >> jos...@codesourcery.com >> -- >> ___ >> yocto mailing list >> yocto@yoctoproject.org >> https://lists.yoctoproject.org/listinfo/yocto > -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
Re: [yocto] [prelink-cross] Support x32 libx32 directory
Mark have we integrated this patch ? > On Sep 14, 2016, at 4:23 PM, Joseph Myers wrote: > > Cross-prelink's prelink-rtld is missing suport for the /libx32 > directory used with the x86_64 x32 ABI. This patch adds such support. > > 2016-09-14 Joseph Myers > > * src/rtld/rtld.c (load_ld_so_conf): Add argument use_x32. > (main): Update call to load_ld_so_conf. > > diff --git a/src/rtld/rtld.c b/src/rtld/rtld.c > index 8d7d760..2d72083 100644 > --- a/src/rtld/rtld.c > +++ b/src/rtld/rtld.c > @@ -409,7 +409,7 @@ free_path (struct search_path *path) > } > > void > -load_ld_so_conf (int use_64bit, int use_mipsn32) > +load_ld_so_conf (int use_64bit, int use_mipsn32, int use_x32) > { > int fd; > FILE *conf; > @@ -435,6 +435,14 @@ load_ld_so_conf (int use_64bit, int use_mipsn32) > add_dir (&ld_dirs, "/usr/lib32/tls", strlen ("/usr/lib32/tls")); > add_dir (&ld_dirs, "/usr/lib32", strlen ("/usr/lib32")); > } > + else if (use_x32) > +{ > + dst_LIB = "libx32"; > + add_dir (&ld_dirs, "/libx32/tls", strlen ("/libx32/tls")); > + add_dir (&ld_dirs, "/libx32", strlen ("/libx32")); > + add_dir (&ld_dirs, "/usr/libx32/tls", strlen ("/usr/libx32/tls")); > + add_dir (&ld_dirs, "/usr/libx32", strlen ("/usr/libx32")); > +} > else > { > dst_LIB = "lib"; > @@ -1195,7 +1203,8 @@ main(int argc, char **argv) > } > > load_ld_so_conf (gelf_getclass (dso->elf) == ELFCLASS64, > - ( dso->ehdr.e_machine == EM_MIPS) && ( dso->ehdr.e_flags & > EF_MIPS_ABI2 ) ); > + ( dso->ehdr.e_machine == EM_MIPS) && ( dso->ehdr.e_flags & > EF_MIPS_ABI2 ), > + dso->ehdr.e_machine == EM_X86_64 && gelf_getclass (dso->elf) == > ELFCLASS32); > > if (multiple) > printf ("%s:\n", argv[remaining]); > > -- > Joseph S. Myers > jos...@codesourcery.com > -- > ___ > yocto mailing list > yocto@yoctoproject.org > https://lists.yoctoproject.org/listinfo/yocto signature.asc Description: Message signed with OpenPGP using GPGMail -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto
[yocto] [prelink-cross] Support x32 libx32 directory
Cross-prelink's prelink-rtld is missing suport for the /libx32 directory used with the x86_64 x32 ABI. This patch adds such support. 2016-09-14 Joseph Myers * src/rtld/rtld.c (load_ld_so_conf): Add argument use_x32. (main): Update call to load_ld_so_conf. diff --git a/src/rtld/rtld.c b/src/rtld/rtld.c index 8d7d760..2d72083 100644 --- a/src/rtld/rtld.c +++ b/src/rtld/rtld.c @@ -409,7 +409,7 @@ free_path (struct search_path *path) } void -load_ld_so_conf (int use_64bit, int use_mipsn32) +load_ld_so_conf (int use_64bit, int use_mipsn32, int use_x32) { int fd; FILE *conf; @@ -435,6 +435,14 @@ load_ld_so_conf (int use_64bit, int use_mipsn32) add_dir (&ld_dirs, "/usr/lib32/tls", strlen ("/usr/lib32/tls")); add_dir (&ld_dirs, "/usr/lib32", strlen ("/usr/lib32")); } + else if (use_x32) +{ + dst_LIB = "libx32"; + add_dir (&ld_dirs, "/libx32/tls", strlen ("/libx32/tls")); + add_dir (&ld_dirs, "/libx32", strlen ("/libx32")); + add_dir (&ld_dirs, "/usr/libx32/tls", strlen ("/usr/libx32/tls")); + add_dir (&ld_dirs, "/usr/libx32", strlen ("/usr/libx32")); +} else { dst_LIB = "lib"; @@ -1195,7 +1203,8 @@ main(int argc, char **argv) } load_ld_so_conf (gelf_getclass (dso->elf) == ELFCLASS64, - ( dso->ehdr.e_machine == EM_MIPS) && ( dso->ehdr.e_flags & EF_MIPS_ABI2 ) ); + ( dso->ehdr.e_machine == EM_MIPS) && ( dso->ehdr.e_flags & EF_MIPS_ABI2 ), + dso->ehdr.e_machine == EM_X86_64 && gelf_getclass (dso->elf) == ELFCLASS32); if (multiple) printf ("%s:\n", argv[remaining]); -- Joseph S. Myers jos...@codesourcery.com -- ___ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto