unwanted IMFS and POSIX stuff in executable

Joel Sherrill joel.sherrill at OARcorp.com
Wed Feb 13 16:40:33 UTC 2008


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
>   


-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available             (256) 722-9985





More information about the users mailing list