[yocto] [prelink-cross] Support x32 libx32 directory

Mark Hatle mark.hatle at windriver.com
Sun Oct 2 17:12:19 PDT 2016


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 <joseph at codesourcery.com> 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  <joseph at codesourcery.com>
>>
>> 	* 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
>> joseph at codesourcery.com
>> --
>> _______________________________________________
>> yocto mailing list
>> yocto at yoctoproject.org
>> https://lists.yoctoproject.org/listinfo/yocto
> 




More information about the yocto mailing list