Skip to content

Commit

Permalink
AIX port : added compatibility and modified lognormalizer for AIX.
Browse files Browse the repository at this point in the history
  • Loading branch information
Philippe Duveau committed Jan 13, 2018
1 parent 31dcfff commit cf65f8a
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 1 deletion.
2 changes: 1 addition & 1 deletion compat/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
noinst_LTLIBRARIES = compat.la

compat_la_SOURCES = strndup.c
compat_la_SOURCES = strndup.c asprintf.c
compat_la_CPPFLAGS = -I$(top_srcdir) $(PTHREADS_CFLAGS) $(RSRT_CFLAGS)
compat_la_LDFLAGS = -module -avoid-version
compat_la_LIBADD = $(IMUDP_LIBS)
53 changes: 53 additions & 0 deletions compat/asprintf.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/* compatibility file for systems without asprintf.
*
* Copyright 2015 Rainer Gerhards and Adiscon
*
* This file is part of rsyslog.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* -or-
* see COPYING.ASL20 in the source distribution
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "config.h"
#ifndef HAVE_ASPRINTF

#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
int asprintf(char **strp, const char *fmt, ...)
{
va_list ap;
int len;

va_start(ap, fmt);
len = vsnprintf(NULL, 0, fmt, ap);
va_end(ap);

*strp = malloc(len+1);
if (!*strp) {
return -1;
}

va_start(ap, fmt);
vsnprintf(*strp, len+1, fmt, ap);
va_end(ap);

(*strp)[len] = 0;
return len;
}
#else
/* XLC needs at least one method in source file even static to compile */
#ifdef __xlc__
static void dummy() {}
#endif
#endif /* #ifndef HAVE_ASPRINTF */
2 changes: 2 additions & 0 deletions src/internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@
/* we need to turn off this warning, as it also comes up in C99 mode, which
* we use.
*/
#ifndef _AIX
#pragma GCC diagnostic ignored "-Wdeclaration-after-statement"
#endif

/* support for simple error checking */

Expand Down
4 changes: 4 additions & 0 deletions src/lognormalizer.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,11 @@
#include "config.h"
#include <stdio.h>
#include <string.h>
#ifdef _AIX
#include <unistd.h>
#else
#include <getopt.h>
#endif
#include <libestr.h>

#include "liblognorm.h"
Expand Down

0 comments on commit cf65f8a

Please sign in to comment.