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