[PATCH 1/6] Move default config to librtemsdefaultconfig.a

Joel Sherrill joel at rtems.org
Mon Oct 15 12:52:14 UTC 2018


Does doing this mean that autoconf probes now need to pass an extra library
to link against?

The detault config primarily exists to allow autoconf probes to work. If it
adds the need to specify an additional library argument, then it impacts
the configuration, rsb recipes, and build instructions for every add-on
package. It also could result in the default configuration library being
included in what the add-on recommends via something like pkgconfig.

Have you built external add-ons with this change?

On Sun, Oct 14, 2018, 11:42 PM Sebastian Huber <
sebastian.huber at embedded-brains.de> wrote:

> An RTEMS application default configuration is contained in
> cpukit/libmisc/dummy/default-configuration.c.  This default
> configuration was contained in librtemscpu.a.  This had at least two
> problems:
>
> 1. Application configuration errors may have pulled in the default
>    configuration which in turn lead to multiply define symbols error.
>    This was quite confusing.  You had to consult the linker map file to
>    figure out what cased the pull in of the default configuration.  You
>    needed to know what a linker map file is and how you generate it with
>    your build system.  This was not very user friendly.
>
> 2. It prevented the use of default configuration items for each subsystem
>    in librtemscpu.a.  This may be used to reduce the size of the
>    configuration itself.
>
> Move the default configuration to the separate library
> librtemsdefaultconfig.a.
>
> Close #3551.
> ---
>  cpukit/Makefile.am              |  6 +++++-
>  testsuites/libtests/Makefile.am | 47
> +++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 52 insertions(+), 1 deletion(-)
>
> diff --git a/cpukit/Makefile.am b/cpukit/Makefile.am
> index b7a44f377d..39dbbcfc35 100644
> --- a/cpukit/Makefile.am
> +++ b/cpukit/Makefile.am
> @@ -287,7 +287,6 @@ librtemscpu_a_SOURCES += libmisc/cpuuse/cpuusagereset.c
>  librtemscpu_a_SOURCES += libmisc/cpuuse/cpuusagetop.c
>  librtemscpu_a_SOURCES += libmisc/devnull/devnull.c
>  librtemscpu_a_SOURCES += libmisc/devnull/devzero.c
> -librtemscpu_a_SOURCES += libmisc/dummy/default-configuration.c
>  librtemscpu_a_SOURCES += libmisc/dummy/dummy-networking.c
>  librtemscpu_a_SOURCES += libmisc/dumpbuf/dumpbuf.c
>  librtemscpu_a_SOURCES += libmisc/fb/mw_print.c
> @@ -1845,6 +1844,11 @@ $(top_srcdir)/sapi/src/version.c: version-vc-key.h
>
>  all-local: generate-vc-key
>
> +project_lib_LIBRARIES += librtemsdefaultconfig.a
> +
> +librtemsdefaultconfig_a_SOURCES =
> +librtemsdefaultconfig_a_SOURCES += libmisc/dummy/default-configuration.c
> +
>  project_lib_LIBRARIES += libftpd.a
>
>  libftpd_a_SOURCES =
> diff --git a/testsuites/libtests/Makefile.am
> b/testsuites/libtests/Makefile.am
> index 1ffab4eef3..9e3d2143d6 100644
> --- a/testsuites/libtests/Makefile.am
> +++ b/testsuites/libtests/Makefile.am
> @@ -188,6 +188,7 @@ endif
>  if TEST_calloc
>  lib_tests += calloc.norun
>  calloc_norun_SOURCES = POSIX/calloc.c
> +calloc_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_capture01
> @@ -203,11 +204,13 @@ endif
>  if TEST_clock_gettime
>  lib_tests += clock_gettime.norun
>  clock_gettime_norun_SOURCES = POSIX/clock_gettime.c
> +clock_gettime_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_close
>  lib_tests += close.norun
>  close_norun_SOURCES = POSIX/close.c
> +close_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_complex
> @@ -257,6 +260,7 @@ lib_docs += defaultconfig01/defaultconfig01.doc
>  defaultconfig01_SOURCES = defaultconfig01/init.c
>  defaultconfig01_CPPFLAGS = $(AM_CPPFLAGS) \
>         $(TEST_FLAGS_defaultconfig01) $(support_includes)
> +defaultconfig01_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_devfs01
> @@ -520,6 +524,7 @@ endif
>  if TEST_dup2
>  lib_tests += dup2.norun
>  dup2_norun_SOURCES = POSIX/dup2.c
> +dup2_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_exit01
> @@ -543,6 +548,7 @@ endif
>  if TEST_fcntl
>  lib_tests += fcntl.norun
>  fcntl_norun_SOURCES = POSIX/fcntl.c
> +fcntl_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_flashdisk01
> @@ -558,21 +564,25 @@ endif
>  if TEST_flockfile
>  lib_tests += flockfile.norun
>  flockfile_norun_SOURCES = POSIX/flockfile.c
> +flockfile_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_fork
>  lib_tests += fork.norun
>  fork_norun_SOURCES = POSIX/fork.c
> +fork_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_free
>  lib_tests += free.norun
>  free_norun_SOURCES = POSIX/free.c
> +free_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_fstat
>  lib_tests += fstat.norun
>  fstat_norun_SOURCES = POSIX/fstat.c
> +fstat_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if NETTESTS
> @@ -590,11 +600,13 @@ endif
>  if TEST_ftrylockfile
>  lib_tests += ftrylockfile.norun
>  ftrylockfile_norun_SOURCES = POSIX/ftrylockfile.c
> +ftrylockfile_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_funlockfile
>  lib_tests += funlockfile.norun
>  funlockfile_norun_SOURCES = POSIX/funlockfile.c
> +funlockfile_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_getentropy01
> @@ -609,26 +621,31 @@ endif
>  if TEST_getlogin
>  lib_tests += getlogin.norun
>  getlogin_norun_SOURCES = POSIX/getlogin.c
> +getlogin_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_getpwnam
>  lib_tests += getpwnam.norun
>  getpwnam_norun_SOURCES = POSIX/getpwnam.c
> +getpwnam_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_getpwuid
>  lib_tests += getpwuid.norun
>  getpwuid_norun_SOURCES = POSIX/getpwuid.c
> +getpwuid_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_gettimeofday
>  lib_tests += gettimeofday.norun
>  gettimeofday_norun_SOURCES = POSIX/gettimeofday.c
> +gettimeofday_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_getuid
>  lib_tests += getuid.norun
>  getuid_norun_SOURCES = POSIX/getuid.c
> +getuid_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_gxx01
> @@ -651,6 +668,7 @@ endif
>  if TEST_htonl
>  lib_tests += htonl.norun
>  htonl_norun_SOURCES = POSIX/htonl.c
> +htonl_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_i2c01
> @@ -665,21 +683,25 @@ endif
>  if TEST_iconv
>  lib_tests += iconv.norun
>  iconv_norun_SOURCES = POSIX/iconv.c
> +iconv_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_iconv_close
>  lib_tests += iconv_close.norun
>  iconv_close_norun_SOURCES = POSIX/iconv_close.c
> +iconv_close_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_iconv_open
>  lib_tests += iconv_open.norun
>  iconv_open_norun_SOURCES = POSIX/iconv_open.c
> +iconv_open_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_kill
>  lib_tests += kill.norun
>  kill_norun_SOURCES = POSIX/kill.c
> +kill_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_libfdt01
> @@ -694,21 +716,25 @@ endif
>  if TEST_longjmp
>  lib_tests += longjmp.norun
>  longjmp_norun_SOURCES = POSIX/longjmp.c
> +longjmp_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_lseek
>  lib_tests += lseek.norun
>  lseek_norun_SOURCES = POSIX/lseek.c
> +lseek_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_lstat
>  lib_tests += lstat.norun
>  lstat_norun_SOURCES = POSIX/lstat.c
> +lstat_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_malloc
>  lib_tests += malloc.norun
>  malloc_norun_SOURCES = POSIX/malloc.c
> +malloc_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_malloc02
> @@ -835,6 +861,7 @@ endif
>  if TEST_nanosleep
>  lib_tests += nanosleep.norun
>  nanosleep_norun_SOURCES = POSIX/nanosleep.c
> +nanosleep_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if NETTESTS
> @@ -860,16 +887,19 @@ endif
>  if TEST_open
>  lib_tests += open.norun
>  open_norun_SOURCES = POSIX/open.c
> +open_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_pipe
>  lib_tests += pipe.norun
>  pipe_norun_SOURCES = POSIX/pipe.c
> +pipe_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_posix_memalign
>  lib_tests += posix_memalign.norun
>  posix_memalign_norun_SOURCES = POSIX/posix_memalign.c
> +posix_memalign_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_putenvtest
> @@ -910,16 +940,19 @@ endif
>  if TEST_read
>  lib_tests += read.norun
>  read_norun_SOURCES = POSIX/read.c
> +read_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_readv
>  lib_tests += readv.norun
>  readv_norun_SOURCES = POSIX/readv.c
> +readv_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_realloc
>  lib_tests += realloc.norun
>  realloc_norun_SOURCES = POSIX/realloc.c
> +realloc_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_rtmonuse
> @@ -934,6 +967,7 @@ endif
>  if TEST_setjmp
>  lib_tests += setjmp.norun
>  setjmp_norun_SOURCES = POSIX/setjmp.c
> +setjmp_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_sha
> @@ -956,31 +990,37 @@ endif
>  if TEST_sigaddset
>  lib_tests += sigaddset.norun
>  sigaddset_norun_SOURCES = POSIX/sigaddset.c
> +sigaddset_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_sigdelset
>  lib_tests += sigdelset.norun
>  sigdelset_norun_SOURCES = POSIX/sigdelset.c
> +sigdelset_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_sigemptyset
>  lib_tests += sigemptyset.norun
>  sigemptyset_norun_SOURCES = POSIX/sigemptyset.c
> +sigemptyset_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_sigfillset
>  lib_tests += sigfillset.norun
>  sigfillset_norun_SOURCES = POSIX/sigfillset.c
> +sigfillset_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_sigismember
>  lib_tests += sigismember.norun
>  sigismember_norun_SOURCES = POSIX/sigismember.c
> +sigismember_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_sigprocmask
>  lib_tests += sigprocmask.norun
>  sigprocmask_norun_SOURCES = POSIX/sigprocmask.c
> +sigprocmask_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a
> $(LDADD)
>  endif
>
>  if TEST_sparsedisk01
> @@ -1022,6 +1062,7 @@ endif
>  if TEST_stat
>  lib_tests += stat.norun
>  stat_norun_SOURCES = POSIX/stat.c
> +stat_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_stringto01
> @@ -1273,6 +1314,7 @@ endif
>  if TEST_unlink
>  lib_tests += unlink.norun
>  unlink_norun_SOURCES = POSIX/unlink.c
> +unlink_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_utf8proc01
> @@ -1287,26 +1329,31 @@ endif
>  if TEST_vfork
>  lib_tests += vfork.norun
>  vfork_norun_SOURCES = POSIX/vfork.c
> +vfork_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_wait
>  lib_tests += wait.norun
>  wait_norun_SOURCES = POSIX/wait.c
> +wait_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_waitpid
>  lib_tests += waitpid.norun
>  waitpid_norun_SOURCES = POSIX/waitpid.c
> +waitpid_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_write
>  lib_tests += write.norun
>  write_norun_SOURCES = POSIX/write.c
> +write_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  if TEST_writev
>  lib_tests += writev.norun
>  writev_norun_SOURCES = POSIX/writev.c
> +writev_norun_LDADD = $(RTEMS_ROOT)cpukit/librtemsdefaultconfig.a $(LDADD)
>  endif
>
>  rtems_tests_PROGRAMS = $(lib_tests)
> --
> 2.16.4
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20181015/33099148/attachment-0002.html>


More information about the devel mailing list