From 8a1f6b17698974a1e36c1f0134e4bc4c51c7539f Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Wed, 1 Oct 2008 10:44:56 +0200 Subject: added doc on how to build from source repository --- doc/build_from_repo.html | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 doc/build_from_repo.html (limited to 'doc/build_from_repo.html') diff --git a/doc/build_from_repo.html b/doc/build_from_repo.html new file mode 100644 index 00000000..8d3b20fe --- /dev/null +++ b/doc/build_from_repo.html @@ -0,0 +1,54 @@ + +Building rsyslog from the source repository + + +

Building rsyslog from the source repository

+

In most cases, people install rsyslog either via a package or use an "official" +distribution tarball to generate it. But there may be situations where it is desirable +to build directly from the source repository. This is useful for people who would like to +participate in development or who would like to use the latest, not-yet-released code. +The later may especially be the case if you are asked to try out an experimental version. +

Building from the repsitory is not much different than building from the source +tarball, but some files are missing because they are output files and thus do not +belong into the repository. +

Obtaining the Source

+

First of all, you need to download the sources. Rsyslog is currently kept in a git +repository. You can clone this repository either via http or git protocol (with the later +being much faster. URLS are: +

+

There is also a browsable version (gitweb) available at +http://git.adiscon.com/?p=rsyslog.git;a=summary. +This version also offers snapshots of each commit for easy download. You can use these if +you do not have git present on your system. +

After you have cloned the repository, you are in the master branch by default. This +is where we keep the devel branch. If you need any other branch, you need to do +a "git checkout --track -b branch origin/branch". For example, the command to check out +the beta branch is "git checkout --track -b beta origin/beta". +

Prequisites

+

To build the compilation system, you need the pkg-config package (an utility for +autotools) present on your system. Otherwise, configure will fail with something like +


+checking for SYSLOG_UNIXAF support... yes
+checking for FSSTND support... yes
+./configure: line 25895: syntax error near unexpected token `RELP,'
+./configure: line 25895: ` PKG_CHECK_MODULES(RELP, relp >= 0.1.1)'
+
+

Creating the Build Environment

+

This is fairly easy: just issue "autoreconf -fvi", which should do everything you need. +Once this is done, you can follow the usual ./configure steps just like when +you downloaded an official distribution tarball (see the +rsyslog install guide, starting at step 2, +for further details about that). + +

[manual index] +[rsyslog site]

+

This documentation is part of the +rsyslog project.
+Copyright © 2008 by Rainer Gerhards and +Adiscon. Released under the GNU GPL +version 1.2 or higher.

+ + -- cgit v1.2.3 From 06b98a56d4422647cffae9b52577cf2ae8aa8991 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Wed, 25 Nov 2009 15:57:38 +0100 Subject: doc: added info on compile settings for atomic ops when building from source --- doc/build_from_repo.html | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'doc/build_from_repo.html') diff --git a/doc/build_from_repo.html b/doc/build_from_repo.html index 8d3b20fe..a06863e1 100644 --- a/doc/build_from_repo.html +++ b/doc/build_from_repo.html @@ -43,12 +43,37 @@ you downloaded an official distribution tarball (see the rsyslog install guide, starting at step 2, for further details about that). +

Special Compile-Time Options

+

On some platforms, compile-time issues occur, like the one shown below: +


+make[2]: Entering directory `/home/az/RSyslog/rsyslog-5.5.0/tools'
+  CCLD   rsyslogd
+rsyslogd-omfile.o: In function `getClockFileAccess':
+/home/az/RSyslog/rsyslog-5.5.0/tools/omfile.c:91: undefined reference to `__sync_fetch_and_add_8'
+/home/az/RSyslog/rsyslog-5.5.0/tools/omfile.c:91: undefined reference to `__sync_fetch_and_add_8'
+/home/az/RSyslog/rsyslog-5.5.0/tools/omfile.c:91: undefined reference to `__sync_fetch_and_add_8'
+
+

Note that the exact error messages can be different. These type of errors stem down to +atomic instruction support in GCC, which is somewhat depending on the machine architecture it +compiles code for. Very old machines (like the original i386) do not even at all provide support +for these instructions. +

The availability of atomic instructions is vital for rsyslog - it can not be built without them. +Consequently, there is a configure check included for them. But under some circumstances, +GCC seems to report they are available, but does not provide implementations for +all of them (at least this is my observation...). The simple cure is to make sure that +GCC generates code for a modern-enough architecture. This, for example, can be done as +follows: +


+./configure CFLAGS="-march=i586 -mcpu=i686" --enable-imfile ... (whatever you need)
+
+

These settings should resolve the issue . +

[manual index] [rsyslog site]

This documentation is part of the rsyslog project.
-Copyright © 2008 by Rainer Gerhards and +Copyright © 2008, 2009 by Rainer Gerhards and Adiscon. Released under the GNU GPL -version 1.2 or higher.

+version 3 or higher.

-- cgit v1.2.3