Posted on 2005-05-28 17:26:30-07 by ffsparky
Perl Module MQSeries-1.23 Install on AIX 5.2
I'm trying to install the perl module MQSeries-1.23 on AIX and running into a compile issue. Here's my environment: :oslevel 5.2.0.0 :lslpp -l | grep mq mqm.Client.Bnd 5.3.0.1 COMMITTED WebSphere MQ Client Bundle mqm.Server.Bnd 5.3.0.1 COMMITTED WebSphere MQ Server Bundle mqm.base.runtime 5.3.0.8 APPLIED WebSphere MQ Runtime for mqm.base.samples 5.3.0.8 APPLIED WebSphere MQ Samples mqm.base.sdk 5.3.0.8 APPLIED WebSphere MQ Base Kit for mqm.client.rte 5.3.0.8 APPLIED WebSphere MQ Client for AIX mqm.java.rte 5.3.0.8 APPLIED WebSphere MQ Java Client and mqm.msg.en_US 5.3.0.8 APPLIED WebSphere MQ Messages - U.S. mqm.server.rte 5.3.0.8 APPLIED WebSphere MQ Server mqm.base.runtime 5.3.0.8 APPLIED WebSphere MQ Runtime for mqm.man.en_US.data 5.3.0.8 APPLIED WebSphere MQ Man Pages - U.S. :perl -v This is perl, v5.8.0 built for aix-thread-multi Copyright 1987-2002, Larry Wall So when I try and make the module: :make install cc_r -c -I"/usr/lpp/mqm/inc" -I../include -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=16384 -qnoansialias -DUS E_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q32 -D_LARGE_FILES -qlonglong -O -DVERSION=\"1.23\" -DXS_VERSION=\"1.23\" "-I/usr/opt/perl 5/lib/5.8.0/aix-thread-multi/CORE" MQSeries.c "/usr/include/crypt.h", line 46.16: 1506-334 (S) Identifier crypt_data has already been defined on line 2187 of "/usr/opt/perl5/lib/ 5.8.0/aix-thread-multi/CORE/perl.h". make: 1254-004 The error code from the last command is 1. Stop. make: 1254-004 The error code from the last command is 2. Stop. I know what the problem is, but I lack the expertise on how to properly resolve it. So what would be the best way to work around this? Thanks Greg Smith
Direct Responses: 526 | Write a response
Posted on 2005-05-31 14:36:08-07 by ffsparky in response to 507
Re: Perl Module MQSeries-1.23 Install on AIX 5.2
/usr/common/e368310/MQSeries-1.23> perl Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for MQClient::MQSeries Writing Makefile for MQSeries::Message::DeadLetter Writing Makefile for MQSeries::Message::PCF Writing Makefile for MQSeries::Message::RulesFormat Warning: Guessing NAME [MQSeries-OAM] from current directory name. Writing Makefile for MQSeries::PubSub Writing Makefile for MQServer::MQSeries Writing Makefile for MQSeries /usr/common/e368310/MQSeries-1.23> make cp MQSeries/Constants/ReasonMacro.pl blib/lib/MQSeries/Constants/ReasonMacro.pl cp MQSeries/ErrorLog/Parser.pm blib/lib/MQSeries/ErrorLog/Parser.pm cp MQSeries/Command/PCF/RequestValues.pl blib/lib/MQSeries/Command/PCF/RequestValues.pl cp MQSeries/Queue.pm blib/lib/MQSeries/Queue.pm cp MQSeries/Command/PCF/Requests.pl blib/lib/MQSeries/Command/PCF/Requests.pl cp MQSeries/Constants/AttributeString.pl blib/lib/MQSeries/Constants/AttributeString.pl cp MQSeries/Constants/ValidPutMsgRecFields.pl blib/lib/MQSeries/Constants/ValidPutMsgRecFields.pl cp MQSeries/Constants/AttributeLength.pl blib/lib/MQSeries/Constants/AttributeLength.pl cp MQSeries/FDC/Parser.pm blib/lib/MQSeries/FDC/Parser.pm cp MQSeries/Command/PCF/RequestParameterRequired.pl blib/lib/MQSeries/Command/PCF/RequestParameterRequired.pl cp MQSeries/Command/Request.pm blib/lib/MQSeries/Command/Request.pm cp MQSeries/Utils.pm blib/lib/MQSeries/Utils.pm cp MQSeries/Command/PCF/Responses.pl blib/lib/MQSeries/Command/PCF/Responses.pl cp MQSeries/Message/Event.pl blib/lib/MQSeries/Message/Event.pl cp MQSeries/Command/PCF.pm blib/lib/MQSeries/Command/PCF.pm cp MQSeries/Command/MQSC.pm blib/lib/MQSeries/Command/MQSC.pm cp MQSeries/Command.pm blib/lib/MQSeries/Command.pm cp MQSeries/Message/Event.pm blib/lib/MQSeries/Message/Event.pm cp MQSeries/Message/ConfigEvent.pm blib/lib/MQSeries/Message/ConfigEvent.pm cp MQSeries/Message/RFH2.pm blib/lib/MQSeries/Message/RFH2.pm cp MQSeries/Message/Storable.pm blib/lib/MQSeries/Message/Storable.pm cp MQSeries/ErrorLog/descriptions.pl blib/lib/MQSeries/ErrorLog/descriptions.pl cp MQSeries/Command/MQSC/RequestValues.pl blib/lib/MQSeries/Command/MQSC/RequestValues.pl cp MQSeries/Message/ConfigEvent.pl blib/lib/MQSeries/Message/ConfigEvent.pl cp MQSeries/Message/Trigger.pm blib/lib/MQSeries/Message/Trigger.pm cp MQSeries/FDC/Entry.pm blib/lib/MQSeries/FDC/Entry.pm cp MQSeries/Command/Response.pm blib/lib/MQSeries/Command/Response.pm cp MQSeries/ErrorLog/Tail.pm blib/lib/MQSeries/ErrorLog/Tail.pm cp MQSeries/Command/PCF/RequestParameterOrder.pl blib/lib/MQSeries/Command/PCF/RequestParameterOrder.pl cp MQSeries/Config/Machine.pm blib/lib/MQSeries/Config/Machine.pm cp MQSeries/Config/QMgr.pm blib/lib/MQSeries/Config/QMgr.pm cp MQSeries/FDC/Tail.pm blib/lib/MQSeries/FDC/Tail.pm cp MQSeries/Command/MQSC/RequestParameterPrimary.pl blib/lib/MQSeries/Command/MQSC/RequestParameterPrimary.pl cp MQSeries/Command/Base.pm blib/lib/MQSeries/Command/Base.pm cp MQSeries/QueueManager.pm blib/lib/MQSeries/QueueManager.pm cp MQSeries/Config/Authority.pm blib/lib/MQSeries/Config/Authority.pm cp MQSeries/Constants/ReasonText.pl blib/lib/MQSeries/Constants/ReasonText.pl cp MQSeries/Command/MQSC/RequestArgs.pl blib/lib/MQSeries/Command/MQSC/RequestArgs.pl cp MQSeries/ErrorLog/Entry.pm blib/lib/MQSeries/ErrorLog/Entry.pm cp MQSeries/Command/MQSC/Responses.pl blib/lib/MQSeries/Command/MQSC/Responses.pl cp MQSeries/Config/ChannelTable.pm blib/lib/MQSeries/Config/ChannelTable.pm cp MQSeries/Command/MQSC/RequestParameters.pl blib/lib/MQSeries/Command/MQSC/RequestParameters.pl cp MQSeries/Command/MQSC/ResponseValues.pl blib/lib/MQSeries/Command/MQSC/ResponseValues.pl cp MQSeries/Message.pm blib/lib/MQSeries/Message.pm cp MQSeries/Command/PCF/ResponseValues.pl blib/lib/MQSeries/Command/PCF/ResponseValues.pl cp MQSeries/Message/IIH.pm blib/lib/MQSeries/Message/IIH.pm cp MQSeries/Command/MQSC/ResponseParameters.pl blib/lib/MQSeries/Command/MQSC/ResponseParameters.pl cp MQSeries/Command/MQSC/RequestParameterRemap.pl blib/lib/MQSeries/Command/MQSC/RequestParameterRemap.pl cp MQSeries/Constants.pl blib/lib/MQSeries/Constants.pl cp MQSeries/Command/MQSC/Requests.pl blib/lib/MQSeries/Command/MQSC/Requests.pl cp MQSeries/Command/PCF/RequestParameters.pl blib/lib/MQSeries/Command/PCF/RequestParameters.pl cp MQSeries/Constants/StringAttribute.pl blib/lib/MQSeries/Constants/StringAttribute.pl cp MQSeries/Command/PCF/ResponseParameters.pl blib/lib/MQSeries/Command/PCF/ResponseParameters.pl cp MQSeries.pm blib/lib/MQSeries.pm /bin/perl -e 'use ExtUtils::Mksymlists; Mksymlists("NAME" => "MQSeries", "DL_FUNCS" => { }, "FUNCLIST" => [], "DL_VARS" => []);' cp MQSeries.pm ../blib/lib/MQClient/MQSeries.pm AutoSplitting ../blib/lib/MQClient/MQSeries.pm (../blib/lib/auto/MQClient/MQSeries) /bin/perl -e 'use ExtUtils::Mksymlists; Mksymlists("NAME" => "MQClient::MQSeries", "DL_FUNCS" => { }, "FUNCLIST" => [], "D L_VARS" => []);' /bin/perl "-I../blib/arch" "-I../blib/lib" typemap.PL typemap /bin/perl /usr/opt/perl5/lib/5.8.0/ExtUtils/xsubpp -typemap /usr/opt/perl5/lib/5.8.0/ExtUtils/typemap -typemap typemap MQS eries.xs > MQSeries.xsc and mv MQSeries.xsc MQSeries.c cc_r -c -I"/usr/lpp/mqm/inc" -I../include -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=16384 -qnoansialias -DUS E_NATIVE_DLOPEN -DNEED_PTHREAD_INIT -q32 -D_LARGE_FILES -qlonglong -O -DVERSION=\"1.23\" -DXS_VERSION=\"1.23\" "-I/usr/opt/perl 5/lib/5.8.0/aix-thread-multi/CORE" MQSeries.c "/usr/include/crypt.h", line 46.16: 1506-334 (S) Identifier crypt_data has already been defined on line 2187 of "/usr/opt/perl5/lib/ 5.8.0/aix-thread-multi/CORE/perl.h". make: 1254-004 The error code from the last command is 1. Stop. make: 1254-004 The error code from the last command is 2. Stop. /usr/common/e368310/MQSeries-1.23> ----- From what I can find /usr/opt/perl5/lib/5.8.0/aix-thread-multi/CORE/perl.h has the following definition: #if defined(_AIX) and !defined(_AIX43) #if defined(USE_REENTRANT) || defined(_REENTRANT) || defined(_THREAD_SAFE) /* We cannot include <crypt.h> to get the struct crypt_data * because of setkey prototype problems when threading */ typedef struct crypt_data { /* straight from /usr/include/crypt.h */ /* From OSF, Not needed in AIX char C[28], D[28]; */ char E[48]; char KS[16][48]; char block[66]; char iobuf[16]; } CRYPTD; #endif /* threading */ #endif /* AIX */ However /usr/opt/perl5/lib/5.8.0/aix-thread-multi/CORE/reentr.h is including crypt.h: #ifdef I_CRYPT # ifdef I_CRYPT # include <crypt.h> # endif #endif So what's the proper way to work around this??
Direct Responses: Write a response
Perl Weekly newsletter
A free weekly newsletter for people who are busy to read all the blogs. click here to check it out.