unwanted IMFS and POSIX stuff in executable

Jerry Needell jerry.needell at unh.edu
Wed Feb 13 17:53:42 UTC 2008


I am using the configure options below on the rtems-4.8 branch

 ../rtems/configure  --target=sparc-rtems --disable-posix 
--disable-itron --disable-tcpip --disable-networking --disable-cxx  
--enable-tests  --prefix=/opt/rtems --enable-rtemsbsp="leon3"


The build fails with: 

../cpukit/libcsupport/'`src/__getpid.c
mv -f src/.deps/libcsupport_a-__getpid.Tpo 
src/.deps/libcsupport_a-__getpid.Po
sparc-rtems-gcc --pipe -DHAVE_CONFIG_H   -I.. 
-I../../cpukit/../../../leon3/lib/include  -Wall -fasm -mcpu=cypress 
-msoft-float -O2 -g -MT src/libcsupport_a-__gettod.o -MD -MP -MF 
src/.deps/libcsupport_a-__gettod.Tpo -c -o src/libcsupport_a-__gettod.o 
`test -f 'src/__gettod.c' || echo 
'../../../../../../rtems/c/src/../../cpukit/libcsupport/'`src/__gettod.c
../../../../../../rtems/c/src/../../cpukit/libcsupport/src/__gettod.c:40: 
error: conflicting types for 'gettimeofday'
/home/needell/leon/rtems/install/rtems-4.8/bin/../lib/gcc/sparc-rtems/4.2.1/../../../../sparc-rtems/include/sys/time.h:73: 
error: previous declaration of 'gettimeofday' was here
gmake[5]: *** [src/libcsupport_a-__gettod.o] Error 1
gmake[5]: Leaving directory 
`/home/needell/leon/rtems/build-4.8/b-rtems/sparc-rtems/c/leon3/cpukit/libcsupport'
gmake[4]: *** [all-recursive] Error 1
gmake[4]: Leaving directory 
`/home/needell/leon/rtems/build-4.8/b-rtems/sparc-rtems/c/leon3/cpukit'
gmake[3]: *** [all] Error 2
gmake[3]: Leaving directory 
`/home/needell/leon/rtems/build-4.8/b-rtems/sparc-rtems/c/leon3/cpukit'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory 
`/home/needell/leon/rtems/build-4.8/b-rtems/sparc-rtems/c/leon3'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory 
`/home/needell/leon/rtems/build-4.8/b-rtems/sparc-rtems/c'
make: *** [all-recursive] Error 1


Any suggestions?
thanks - Jerry

wrote:
> Jerry Needell wrote:
>> I am building an application that uses the RTEMS CLASSIC API and  only
>> the clock manager. The executable contains a lot of code that I don't
>> think I am using. I have extracted some examples from the nm output
>> file.  I am not using IMFS or POSIX unless they are required by some
>> internal RTEMS functions. Is there a way to keep these from being
>> compiled into the program? I am trying to find the minimum footprint for
>> my application.
>>
>>   
> Depending on the RTEMS version there is only so much you
> can do.  4.7.1 is better than 4.7.0 and 4.8 is even better.
> The CVS head is better still but probably not the best idea.
>
>
> Start with configuring with --disable-posix.
>
> If on something older than 4.7.1, look at the erc32/Makefile.am
> and console driver to see what gone to startup and splitting
> debug IO from the console.  That eliminated a lot.
>
> Also look at what was done to the calls for open(/dev/console)
> at init time.
>
> There is currently nothing smaller than the miniIMFS.  It is
> on the wish list to have a smaller option.  In 4.0.0 RTEMS only
> had a device table lookup for device nodes -- there were no files
> or device nodes.  This would again be a nice alternative for systems
> like yours.  It would let the console still work and all section 2
> commands like open, read, etc would work but it would be smaller
> and simpler.  I really would like to get to work on this one. <hint>
>> 4000e2b0 T miniIMFS_initialize
>> 4000e2f0 T IMFS_Set_handlers
>> 4000e368 T IMFS_evaluate_permission
>> 4000e3e0 T IMFS_evaluate_hard_link
>> 4000e44c T IMFS_eval_path
>> 4000e6f0 T IMFS_evaluate_sym_link
>> 4000e7dc T IMFS_evaluate_link
>> 4000e8a4 T IMFS_evaluate_for_make
>> 4000eb78 T IMFS_find_match_in_dir
>> 4000ec40 T IMFS_get_token
>> 4000ed78 T IMFS_initialize_support
>> 4000ee4c T IMFS_mknod
>> 4000ef18 T IMFS_node_type
>> 4000ef24 T IMFS_rmnod
>> 4000efdc T IMFS_stat
>>
>> 4000f794 T init_fs_mount_table
>> 4000f7b4 T mount
>> 4000fa6c T _POSIX_Condition_variables_Manager_initialization
>> 4000fa9c T _POSIX_Key_Manager_initialization
>> 4000facc T _POSIX_Message_queue_Manager_initialization
>> 4000fb24 T _POSIX_Mutex_Manager_initialization
>> 4000fb54 T _POSIX_Barrier_Manager_initialization
>> 4000fb84 T _POSIX_RWLock_Manager_initialization
>> 4000fbb4 T _POSIX_signals_Manager_Initialization
>> 4000fc4c T _POSIX_signals_Post_switch_extension
>> 4000fd20 T _POSIX_signals_Abnormal_termination_handler
>> 4000fd30 T _POSIX_Spinlock_Manager_initialization
>> 4000fd60 T _POSIX_Threads_Initialize_user_threads
>> 4000fd88 T _POSIX_Threads_Manager_initialization
>> 4000fddc T _POSIX_Threads_Delete_extension
>> 4000fe50 T _POSIX_Threads_Create_extension
>> 4000ff7c T _POSIX_Threads_Sporadic_budget_callout
>> 4000ffcc T _POSIX_Threads_Sporadic_budget_TSR
>> 4001007c T _POSIX_Threads_Exitted_extension
>> 400100a8 T _POSIX_Timer_Manager_initialization
>> 400100dc T _POSIX_Semaphore_Manager_initialization
>>
>>
>> 400161ec B _POSIX_RWLock_Information
>> 40016238 B _POSIX_Threads_Information
>> 40016284 B _POSIX_Spinlock_Information
>> 400162d0 B _POSIX_Semaphore_Information
>> 4001631c B _POSIX_Timer_Information
>> 40016368 B _POSIX_Message_queue_Information
>> 400163b4 B _POSIX_Mutex_Information
>> 40016400 B _POSIX_Barrier_Information
>> 4001644c B _POSIX_Threads_User_initialization_threads
>> 40016450 B _POSIX_Keys_Information
>> 4001649c B _POSIX_Condition_variables_Information
>> 400164e8 B _POSIX_Objects
>> 4001651c B _POSIX_Threads_Number_of_initialization_threads
>> 40016520 B _POSIX_Message_queue_Information_fds
>>
>> 40016764 B _POSIX_signals_Inactive_siginfo
>> 40016770 B _POSIX_signals_Wait_queue
>> 400167b0 B _POSIX_signals_Pending
>> 400167b4 B _POSIX_signals_Siginfo
>>
>>
>> _______________________________________________
>> rtems-users mailing list
>> rtems-users at rtems.com
>> http://rtems.rtems.org/mailman/listinfo/rtems-users
>>   
>
>




More information about the users mailing list