\subsection*{Problem}

Various source files of different\+:


\begin{DoxyItemize}
\item users
\item version evolution
\end{DoxyItemize}

are all linked together to libelektra.\+org.

\subsection*{Constraints}


\begin{DoxyItemize}
\item have a legacy libelektra that is identical to current behavior
\item full and static libraries remain unchanged
\end{DoxyItemize}

\subsection*{Assumptions}


\begin{DoxyItemize}
\item linker overhead of a dozen libraries is not measurable
\end{DoxyItemize}

\subsection*{Considered Alternatives}


\begin{DoxyItemize}
\item keep current situation
\end{DoxyItemize}

\subsection*{Decision}


\begin{DoxyItemize}
\item split libraries
\end{DoxyItemize}

\subsection*{Rationale}


\begin{DoxyItemize}
\item allows various users (plugins, applications) to link to exactly what they need
\item allows symbol versioning on different levels (for different evolving libraries)
\item allows alternative implementation of parts of Elektra, e.\+g. a new libkdb which still uses libcore
\item easier to navigate in source tree
\item facilitates code reuse between plugins
\item easier entrance to create commonly used libs (no fear of \char`\"{}changes in the core\char`\"{} for some helper functionality)
\end{DoxyItemize}

\subsection*{Implications}


\begin{DoxyItemize}
\item maybe to bindings?
\item plugins and applications need changes in order to profit from less dependencies
\end{DoxyItemize}

\subsection*{Related Decisions}


\begin{DoxyItemize}
\item none
\end{DoxyItemize}

\subsection*{Notes}


\begin{DoxyItemize}
\item was discussed in a meeting, all were in favor (or did not say anything)
\end{DoxyItemize}

Sizes of libelektra.\+so


\begin{DoxyItemize}
\item 0.\+8.\+14 unmodified 128K
\item 0.\+8.\+14 w/o \hyperlink{meta_8c}{meta.\+c} 120K
\item 0.\+8.\+14 w/o array 126K
\end{DoxyItemize}

So the removal of the non-\/core functionality is actually relevant. And kdb/core is now nearly half-\/split\+:


\begin{DoxyItemize}
\item 52K lib/libelektra-\/core.\+so.\+0.\+8.\+14
\item 7,5K lib/libelektra-\/ease.\+so.\+0.\+8.\+14
\item 1,3M lib/libelektra-\/full.\+so.\+0.\+8.\+14
\item 76K lib/libelektra-\/kdb.\+so.\+0.\+8.\+14
\item 9,3K lib/libelektra-\/meta.\+so.\+0.\+8.\+14
\item 5,1K lib/libelektra-\/plugin.\+so.\+0.\+8.\+14
\item 7,6K lib/libelektra-\/proposal.\+so.\+0.\+8.\+14 
\end{DoxyItemize}