AnsweredAssumed Answered

System() function does not work when libpowerpc is used.

Question asked by shunji harauchi on Nov 2, 2015

Hello Expers,

 

I'm an engineer to develop a system with FSL QorIQ E500v2.
My application on the system takes 5minutes to draw screen at first time, so I try to use libpowerpc library.
However one of the child process, which initializes screen status, does not start and the screen does not show.

I find if I use execve() function instead of system() function, the child process starts and it works fine.

 

The child process starts:
execve(  "LD_PRELOAD=/usr/lib/lib_e500v2.so /USR/bin/child_proc", arg, envpp ); 

The child process does not start :
system(  "LD_PRELOAD=/usr/lib/lib_e500v2.so /USR/bin/child_proc" ); 

My application used couple hundred of system() functions and it is not realistic to replace them by execve() function.

Does anyone have idea why system() function does not work and how to solve the problem?

 

Configuration
CPU on board:
FSL QorIQ P1023
Desktop for cross compile:
Ubuntu 14.04LTS
FreescaleSDK ver1.6 (Carnel 3.12 Gcc 4.xx)
Graphic:
Gtk+ 3.10.8

 

If there is any luck of information, let me know.

 

Thanks

Outcomes