HI,

> Can't see anything, I think you should add printouts in __uClibc_init()
> to see if you get there, use the write() sys call as I don't think you
> can use any of the libc print functions.
> 
> Non PIE rpm works I guess?
> Does rpm work in glibc, both PIE and non PIE?
> 
>  Jocke



_malloc:921: mmapping more memory
_dl_get_ready_to_run:748: Beginning relocation fixups
here: 001
here: 002
here: 025
here: 026
Segmentation fault

Looks like its choking on pthreads?



/*
 * __uClibc_main.                                                               
                                                                                
       
 */                                                                             
                                                                                
       
                                                                                
                                                                                
       
extern void __uClibc_init(void);                                                
                                                                                
       
libc_hidden_proto(__uClibc_init)                                                
                                                                                
       
void __uClibc_init(void)                                                        
                                                                                
       
{                                                                               
                                                                                
       
    static int been_there_done_that = 0;                                        
                                                                                
       
write(0,"here: 001\n",10);                                                      
                                                                                
       
    if (been_there_done_that)                                                   
                                                                                
       
        return;                                                                 
                                                                                
       
    been_there_done_that++;                                                     
                                                                                
       
write(0,"here: 002\n",10);                                                      
                                                                                
       
                                                                                
                                                                                
       
    /* Setup an initial value.  This may not be perfect, but is                 
                                                                                
       
     * better than  malloc using __pagesize=0 for atexit, ctors, etc.  */       
                                                                                
       
    __pagesize = PAGE_SIZE;                                                     
                                                                                
       
                                                                                
                                                                                
       
#ifdef __UCLIBC_HAS_THREADS__                                                   
                                                                                
       
    /* Before we start initializing uClibc we have to call                      
                                                                                
       
     * __pthread_initialize_minimal so we can use pthread_locks                 
                                                                                
       
     * whenever they are needed.                                                
                                                                                
       
     */                                                                         
                                                                                
       
write(0,"here: 025\n",10);                                                      
                                                                                
       
    if (likely(__pthread_initialize_minimal!=NULL))                             
                                                                                
       
{                                                                               
                                                                                
       
write(0,"here: 026\n",10);                                                      
                                                                                
       
        __pthread_initialize_minimal();                                         
                                                                                
       
write(0,"here: 027\n",10);                                                      
                                                                                
       
}                                                                               
                                                                                
       
#endif                                                                          
                                                                                
       
write(0,"here: 003\n",10);  

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
uClibc mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/uclibc

Reply via email to