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