[ZBX-8131] Can not compile Zabbix agent on AIX 7.1 Created: 2014 Apr 22 Updated: 2017 May 30 Resolved: 2014 May 09 | 
    |
| Status: | Closed | 
| Project: | ZABBIX BUGS AND ISSUES | 
| Component/s: | Agent (G) | 
| Affects Version/s: | 2.2.3 | 
| Fix Version/s: | None | 
| Type: | Incident report | Priority: | Major | 
| Reporter: | Alexey Pustovalov | Assignee: | Unassigned | 
| Resolution: | Cannot Reproduce | Votes: | 1 | 
| Labels: | agent, aix, compilation | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: | 
                
  | 
        ||||
| Description | 
| 
             Please check comments.  | 
    
| Comments | 
| Comment by Alexey Pustovalov [ 2014 Apr 22 ] | 
            make
Making all in src
Making all in libs
Making all in zbxcrypto
        depbase=`echo md5.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`; gcc -DHAVE_CONFIG_H -I. -I../../../include      -g -O2    -MT md5.o -MD -MP -MF $depbase.Tpo -c -o md5.o md5.c && mv -f $depbase.Tpo $depbase.Po
In file included from /usr/include/netdb.h:50,
                 from ../../../include/sysinc.h:192,
                 from ../../../include/common.h:23,
                 from md5.c:54:
/usr/include/netinet/in.h:98: error: two or more data types in declaration specifiers
In file included from /usr/include/sys/cred.h:52,
                 from /usr/include/sys/thread.h:42,
                 from /usr/include/sys/ptrace.h:28,
                 from /usr/include/sys/proc.h:42,
                 from /usr/include/sys/pri.h:43,
                 from /usr/include/sys/sched.h:38,
                 from /usr/include/sys/corral.h:22,
                 from /usr/include/libperfstat.h:28,
                 from ../../../include/sysinc.h:298,
                 from ../../../include/common.h:23,
                 from md5.c:54:
/usr/include/sys/secattr.h:50: error: expected specifier-qualifier-list before 'rid_t'
/usr/include/sys/secattr.h:70: error: expected specifier-qualifier-list before 'authnum_t'
In file included from /usr/include/sys/thread.h:42,
                 from /usr/include/sys/ptrace.h:28,
                 from /usr/include/sys/proc.h:42,
                 from /usr/include/sys/pri.h:43,
                 from /usr/include/sys/sched.h:38,
                 from /usr/include/sys/corral.h:22,
                 from /usr/include/libperfstat.h:28,
                 from ../../../include/sysinc.h:298,
                 from ../../../include/common.h:23,
                 from md5.c:54:
/usr/include/sys/cred.h:338: error: expected specifier-qualifier-list before 'rid_t'
In file included from /usr/include/net/if.h:148,
                 from /usr/include/sys/corral.h:24,
                 from /usr/include/libperfstat.h:28,
                 from ../../../include/sysinc.h:298,
                 from ../../../include/common.h:23,
                 from md5.c:54:
/usr/include/net/route.h:310: error: expected specifier-qualifier-list before 'eye_catch8b_t'
make: The error code from the last command is 1.
Stop.
make: The error code from the last command is 1.
Stop.
make: The error code from the last command is 1.
Stop.
make: The error code from the last command is 1.
Stop.
 | 
| Comment by Alexey Pustovalov [ 2014 Apr 22 ] | 
| 
             /usr/include/netinet/in.h +90 #include <end_strict_stdtypes.h> +91 /* +92 * socklen_t also has a similar definition in sys/socket.h +93 * If we need to change this typedef, it must be changed +94 * in sys/socket.h also +95 */ +96 #ifndef __SOCKLEN_T +97 #define __SOCKLEN_T +98 typedef __ulong32_t socklen_t; +99 #endif +100 +101 /* +102 * Constants and structures defined by the internet system, +103 * Per RFC 790, September 1981.  | 
| Comment by Alexey Pustovalov [ 2014 Apr 22 ] | 
| 
             /usr/include/sys/secattr.h   +48  /* Security attributes for subjects (process) */
   +49  struct subsec_attr {
   +50          rid_t           roles[MAX_ROLES];  /* Maximum no. of supported roles */
   +51          short           nroles;         /* Number of roles */
   +52          short           ntrauths;       /* Number of traced auths */
   +53          uint32_t        flags;          /* Flags */
   +54          privg_t         effpriv;        /* Effective privilege vector */
   +55          privg_t         maxpriv;        /* Maximum privilege vector */
   +56          privg_t         inhpriv;        /* Inheritable privilege vector */
   +57          privg_t         limpriv;        /* Limited privilege vector */
   +58          privg_t         usedpriv;       /* Used privilege vector */
   +59  #ifdef _KERNEL
   +60          authnum_t       *trauths;       /* Buffer for tracing authorizations */
   +61  #else
   +62          int             reserved[2];    /* Reserved */
   +63  #endif
   +64          sec_labels_t    labels;         /* All Labels */
   +65  };
   +66  typedef struct subsec_attr  subsec_attr_t;
   +67
   +68  /* Security attributes for objects (File System, Privcmd) */
   +69  struct fsobjsec_attr {
   +70          authnum_t   accessAuths[MAX_AAS_SIZ];   /* Access Authorizations */
   +71          authnum_t   privAuths[MAX_APS_SIZ];     /* Privileged Authorizations */
   +72          privg_t     authPrivs[MAX_APS_SIZ];     /* Authorized Privileges */
   +73          privg_t     innatePrivs;                /* Innate Privileges */
   +74          privg_t     inheritPrivs;               /* Inheritable Privileges */
   +75          uint32_t    secFlags;                   /* File Security Flag */
   +76          rid_t       aroles[MAX_AROLES_SIZ];     /* Authenticated Roles */
   +77  };
   +78  typedef struct fsobjsec_attr  fsobjsec_attr_t;
   +79
   +80  /* Special auth ids for accessAuths */
   +81  #define ALLOW_OWNER 1   /* Allow file owner to execute */
   +82  #define ALLOW_GROUP 2   /* Allow file group member to execute */
   +83  #define ALLOW_ALL   3   /* Allow everyone to execute */
   +84  #define BYPASS_AUTH 4   /* Not to assign in privcmd, for traceauth only */
   +85
 | 
| Comment by Aleksandrs Saveljevs [ 2014 Apr 22 ] | 
| 
             In order to proceed with this issue, please execute the following steps: 
  | 
| Comment by Aleksandrs Saveljevs [ 2014 Apr 22 ] | 
| 
             Also, could you please execute the following steps in a new directory: 
  | 
| Comment by Aleksandrs Saveljevs [ 2014 Apr 22 ] | 
| 
             Also, could you please tell us why compiler takes includes from locations like "/opt/freeware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.0/include/stdio.h"? Here, "powerpc-ibm-aix5.3.0.0" is suspicious, considering that this issue is about AIX 7.1.  | 
| Comment by Marzena Piko [ 2014 Apr 22 ] | 
| 
             List of rpm-s AIX-rpm-7.1.2.15-1 tcl-8.4.7-3 tk-8.4.7-3 expect-5.42.1-3 screen-3.9.10-2 sudo-1.6.9p23-2noldap unzip-5.51-1 ##### All next rpm-a are downloaded from http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html#R fo zabbix compilation: autoconf-2.63-1 gcc-4.2.0-3 gcc-c++-4.2.0-3 libgcc-4.2.0-3 libstdc++-4.2.0-3 libstdc++-devel-4.2.0-3 m4-1.4.13-1 make-3.81-1 automake-1.11-1 libtool-1.5.8-2 coreutils-5.2.1-2 bash-4.2-1 cpio-2.11-1 http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html#R  | 
| Comment by Marzena Piko [ 2014 Apr 22 ] | 
| 
             Compilation was not successfull: [ZABBIX_DEV_TEST]root@p032063zabbixde:# gcc -g -O2 -c simple.c
In file included from /usr/include/sys/cred.h:52,
                 from /usr/include/sys/thread.h:42,
                 from /usr/include/sys/ptrace.h:28,
                 from /usr/include/sys/proc.h:42,
                 from /usr/include/sys/pri.h:43,
                 from /usr/include/sys/sched.h:38,
                 from /usr/include/sys/corral.h:22,
                 from /usr/include/libperfstat.h:28,
                 from simple.c:2:
/usr/include/sys/secattr.h:50: error: expected specifier-qualifier-list before 'rid_t'
/usr/include/sys/secattr.h:70: error: expected specifier-qualifier-list before 'authnum_t'
In file included from /usr/include/sys/thread.h:42,
                 from /usr/include/sys/ptrace.h:28,
                 from /usr/include/sys/proc.h:42,
                 from /usr/include/sys/pri.h:43,
                 from /usr/include/sys/sched.h:38,
                 from /usr/include/sys/corral.h:22,
                 from /usr/include/libperfstat.h:28,
                 from simple.c:2:
/usr/include/sys/cred.h:338: error: expected specifier-qualifier-list before 'rid_t'
In file included from /usr/include/net/if.h:148,
                 from /usr/include/sys/corral.h:24,
                 from /usr/include/libperfstat.h:28,
                 from simple.c:2:
/usr/include/net/route.h:310: error: expected specifier-qualifier-list before 'eye_catch8b_t'
 | 
| Comment by Aleksandrs Saveljevs [ 2014 Apr 22 ] | 
| 
             It seems to me that if such a simple file including only <netdb.h> and <libperfstat.h> does not compile, then that probably suggests that system headers are not in order.  | 
| Comment by Alexey Pustovalov [ 2014 May 09 ] | 
| 
             corrupted OS header files.  |