[ZBXNEXT-5041] Precompiled ZBX 4.0.4 Agent on AIX 7.1 Created: 2019 Feb 14  Updated: 2020 Jul 22

Status: Open
Project: ZABBIX FEATURE REQUESTS
Component/s: Agent (G)
Affects Version/s: 4.0.3, 4.0.4
Fix Version/s: None

Type: Change Request Priority: Major
Reporter: Marcus Griesing Assignee: Michael Veksler
Resolution: Unresolved Votes: 2
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

ZBX 4.0.4 Agent on AIX 7.1


Issue Links:
Duplicate
Sub-task
part of ZBX-15151 Zabbix Agents for AIX 6.1, 7.2 with a... Closed

 Description   

Dear Zabbix Support Team,

We recognize Errors on Compilation of the ZBX4.0.x Agent on our AIX 7.1 Systems.
So can you please provide a pre-compiled Agent as ppc for AIX 7.1?

Here is the Output of our AIX Technician:
After configuring the client as following:

./configure --enable-agent --enable-ipv6 --with-net-snmp --with-libxml2 --with-openssl

I tried to "make install", but this stopped in several errors:

In file included from ../../../../include/sysinc.h:26,
from ../../../../include/common.h:23,
from cpu.c:21:
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/stdio.h:582:12: error: conflicting types for 'fgetpos64'
extern int fgetpos64(FILE *, fpos64_t *);
^~~~~~~~~
In file included from ../../../../include/sysinc.h:26,
from ../../../../include/common.h:23,
from cpu.c:21:
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/stdio.h:377:12: note: previous declaration of 'fgetpos64' was here
extern int fgetpos(FILE *__restrict__, fpos_t *__restrict__);
^~~~~~~
In file included from ../../../../include/sysinc.h:26,
from ../../../../include/common.h:23,
from cpu.c:21:
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/stdio.h:585:12: error: conflicting types for 'fseeko64'
extern int fseeko64(FILE *, off64_t, int);
^~~~~~~~
In file included from ../../../../include/sysinc.h:26,
from ../../../../include/common.h:23,
from cpu.c:21:
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/stdio.h:525:12: note: previous declaration of 'fseeko64' was here
extern int fseeko(FILE *, off_t, int);
^~~~~~
In file included from ../../../../include/sysinc.h:26,
from ../../../../include/common.h:23,
from cpu.c:21:
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/stdio.h:586:12: error: conflicting types for 'fsetpos64'
extern int fsetpos64(FILE *, const fpos64_t *);
^~~~~~~~~
In file included from ../../../../include/sysinc.h:26,
from ../../../../include/common.h:23,
from cpu.c:21:
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/stdio.h:379:12: note: previous declaration of 'fsetpos64' was here
extern int fsetpos(FILE *, const fpos_t *);
^~~~~~~
In file included from ../../../../include/sysinc.h:26,
from ../../../../include/common.h:23,
from cpu.c:21:
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/stdio.h:587:16: error: conflicting types for 'ftello64'
extern off64_t ftello64(FILE *);
^~~~~~~~
In file included from ../../../../include/sysinc.h:26,
from ../../../../include/common.h:23,
from cpu.c:21:
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/stdio.h:526:14: note: previous declaration of 'ftello64' was here
extern off_t ftello(FILE *);
^~~~~~
In file included from /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/fcntl.h:234,
from ../../../../include/sysinc.h:157,
from ../../../../include/common.h:23,
from cpu.c:21:
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/unistd.h:210:16: error: conflicting types for 'lseek64'
extern off64_t lseek64(int, off64_t, int);
^~~~~~~
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/unistd.h:208:14: note: previous declaration of 'lseek64' was here
extern off_t lseek(int, off_t, int);
^~~~~
In file included from /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/unistd.h:866,
from /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/fcntl.h:234,
from ../../../../include/sysinc.h:157,
from ../../../../include/common.h:23,
from cpu.c:21:
/usr/include/sys/lockf.h:64:13: error: conflicting types for 'lockf64'
extern int lockf64 (int, int, off64_t);
^~~~~~~
/usr/include/sys/lockf.h:62:13: note: previous declaration of 'lockf64' was here
extern int lockf (int, int, off_t);
^~~~~
In file included from /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/fcntl.h:234,
from ../../../../include/sysinc.h:157,
from ../../../../include/common.h:23,
from cpu.c:21:
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/unistd.h:939:14: error: conflicting types for 'ftruncate64'
extern int ftruncate64(int, off64_t);
^~~~~~~~~~~
In file included from /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/fcntl.h:234,
from ../../../../include/sysinc.h:157,
from ../../../../include/common.h:23,
from cpu.c:21:
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/unistd.h:937:14: note: previous declaration of 'ftruncate64' was here
extern int ftruncate(int, off_t);
^~~~~~~~~
In file included from /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/fcntl.h:234,
from ../../../../include/sysinc.h:157,
from ../../../../include/common.h:23,
from cpu.c:21:
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/unistd.h:996:14: error: conflicting types for 'truncate64'
extern int truncate64(const char *, off64_t);
^~~~~~~~~~
In file included from /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/fcntl.h:234,
from ../../../../include/sysinc.h:157,
from ../../../../include/common.h:23,
from cpu.c:21:
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/unistd.h:994:14: note: previous declaration of 'truncate64' was here
extern int truncate(const char *, off_t);
^~~~~~~~
In file included from /opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/fcntl.h:234,
from ../../../../include/sysinc.h:157,
from ../../../../include/common.h:23,
from cpu.c:21:
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/unistd.h:1015:18: error: conflicting types for 'pread64'
extern ssize_t pread64(int, void *, size_t, off64_t);
^~~~~~~
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/unistd.h:1012:18: note: previous declaration of 'pread64' was here
extern ssize_t pread(int, void *, size_t, off_t);
^~~~~
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/unistd.h:1016:18: error: conflicting types for 'pwrite64'
extern ssize_t pwrite64(int, const void *, size_t, off64_t);
^~~~~~~~
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/unistd.h:1013:18: note: previous declaration of 'pwrite64' was here
extern ssize_t pwrite(int, const void *, size_t, off_t);
^~~~~~
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/unistd.h:1101:17: error: conflicting types for 'fclear64'
extern off64_t fclear64(int, off64_t);
^~~~~~~~
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/unistd.h:1098:15: note: previous declaration of 'fclear64' was here
extern off_t fclear(int, off_t);
^~~~~~
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/unistd.h:1102:13: error: conflicting types for 'fsync_range64'
extern int fsync_range64(int, int, off64_t, off64_t);
^~~~~~~~~~~~~
/opt/freeware/lib/gcc/powerpc-ibm-aix7.1.0.0/8.2.0/include-fixed/unistd.h:1099:13: note: previous declaration of 'fsync_range64' was here
extern int fsync_range(int, int, off_t, off_t);
^~~~~~~~~~~
make: 1254-004 The error code from the last command is 1.
Stop.
make: 1254-004 The error code from the last command is 1.
Stop.
make: 1254-004 The error code from the last command is 1.
Stop.
make: 1254-004 The error code from the last command is 1.
Stop.
make: 1254-004 The error code from the last command is 1.
Stop.

Regards, Marcus



 Comments   
Comment by Andris Mednis [ 2019 Feb 14 ]

Hi, Marcus!

Can you try:

$ OBJECT_MODE=64 ; export OBJECT_MODE
$ CFLAGS="-maix64 -g -O2" ./configure --enable-agent --enable-ipv6 --with-openssl
$ make install
Comment by Enrico Becker [ 2019 Feb 15 ]

Hi,

we tried this and I think we had a little progress, but came to an error:

ld: 0711-224 WARNING: Duplicate symbol: Hyp_Name
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
ld: 0711-317 ERROR: Undefined symbol: .libiconv_open
ld: 0711-317 ERROR: Undefined symbol: .libiconv
ld: 0711-317 ERROR: Undefined symbol: .libiconv_close
collect2: error: ld returned 8 exit status
make: 1254-004 The error code from the last command is 1.

Stop.
make: 1254-004 The error code from the last command is 1.

Stop.
make: 1254-004 The error code from the last command is 1.

Stop.

Seams to be a problem with the LD-Library path, but don't know how to fix that the right way!

Comment by Andris Mednis [ 2019 Feb 18 ]

Hi, enrico.becker !

It could be that you have only 32-bit libiconv installed. Take a look at comment

https://support.zabbix.com/browse/ZBX-6564?focusedCommentId=189446&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-189446

how to compile a 64-bit libiconv and then Zabbix agent. It was written almost 3 years ago, today probably there are newer versions available.

Comment by Enrico Becker [ 2019 Feb 19 ]

Hi Andris.

Thanks for your hint. I compiled libiconv version 1.15 as you suggested in 64-bit:

ar -tv -X64 lib/libiconv.a
rw-r--r-- 0/0 1657366 Feb 19 08:14 2019 iconv.o
rw-r--r-- 0/0 43724 Feb 19 08:14 2019 localcharset.o
rw-r--r-- 0/0 37981 Feb 19 08:14 2019 relocatable.o
r--r--r-- 0/0 310633 Feb 19 08:14 2019 shr4_64.o
file bin/iconv
bin/iconv: 64-bit XCOFF executable or object module not stripped

But after configure zabbix again I got the same error. here is what I do and get:

{{CFLAGS="-maix64 -g -O2" ./configure --enable-agent --enable-ipv6 --with-openssl --with-net-snmp --with-libxml2 --with-iconv=/tmp/libiconv-1.15 --prefix=`pwd`}}

Configuration:Detected OS: aix7.1.5.0
Install path: /tmp/zabbix/zabbix-4.0.4
Compilation arch: aix
Compiler: /tmp/zabbix/zabbix-4.0.4/compile cc
Compiler flags: -maix64 -g -O2
Library-specific flags:
TLS: -I/usr/include
iconv: -I/tmp/libiconv-1.15/include
Enable server: no
Enable proxy: no
Enable agent: yes
Agent details:
TLS: OpenSSL
Linker flags: -L/usr/lib -L/tmp/libiconv-1.15/lib
Libraries: -lssl -lcrypto -lm -lperfstat -lpcre -liconv
Configuration file: /tmp/zabbix/zabbix-4.0.4/etc/zabbix_agentd.conf
Modules: /tmp/zabbix/zabbix-4.0.4/lib/modules
Enable Java gateway: no
LDAP support: no
IPv6 support: yes

And after "make install" I got:

ld: 0711-224 WARNING: Duplicate symbol: Hyp_Name
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
ld: 0711-317 ERROR: Undefined symbol: .libiconv_open
ld: 0711-317 ERROR: Undefined symbol: .libiconv
ld: 0711-317 ERROR: Undefined symbol: .libiconv_close
collect2: error: ld returned 8 exit status
make: 1254-004 The error code from the last command is 1.

Stop.
make: 1254-004 The error code from the last command is 1.

Stop.
make: 1254-004 The error code from the last command is 1.

Stop.

Regards, Enrico

Comment by Andris Mednis [ 2019 May 16 ]

Maybe you can use agent compiled on AIX 6.1 on an AIX 7.1 machine?

ZBX-15151 describes recently built agents, they are also published on https://www.zabbix.com/download_agents

Comment by Andrzej [ 2019 Sep 18 ]

Hi

In our company we have the same problem. AIX 6.1 version zabbix agent 4.2.6.
Such a procedure:

$ OBJECT_MODE=64 ; export OBJECT_MODE
$ CFLAGS="-maix64 -g -O2" ./configure --enable-agentĀ 
$ make install

I got an error like Becker described.

But I checked if a binary was created in the src directory in directory zabbix-4.2.6.

Surprise was in this directory.

Next i did ./zabbix_agent -V and got a response.

I create zabbix_agent.conf and run this agent.

It work Agent Zabbix send value to Zabbix Server.

Generated at Tue Mar 19 06:30:06 EET 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.