[krbdev.mit.edu #7146] Kerberos compile on AIX 6.1 fails to detect as AIX

Peacock@krbdev.mit.edu Peacock at krbdev.mit.edu
Mon May 21 14:17:28 EDT 2012



   Submitter-Id:  Sanford
   Originator:       Josh Peacock
   Organization: Sanford Health
   Confidential:   no
   Synopsis:          Misspelled "Kerberos" in title of installation guide
   Severity:           non-critical
   Priority:             low
   Category:         krb5-doc
   Class:                  doc-bug
   Release:            1.10.1 or 1.9.3
   Environment:
                IBM Power 750
                IBM AIX 6.1 TL 6 SP 6

     System:  AIX jpaixtmp 1 6 00F635E24C00
          >Description:

Using GCC to compile on AIX 6.1 results in the following error every time.

1.10.1 config.log shows

krb5_cv_host=powerpc-ibm-aix6.1.0.0

1.9.3 config.log shows

krb5_cv_host=rs6000-ibm-aix

When config/shlib.conf starts to work on this variable the case statement isn't able to properly identify the host.

How-To-Repeat:

cd src/

env CC="gcc -O2 -Wall -Wl,-blibpath:/opt/pware/lib:/usr/lib:/lib,-brtl" \
CPPFLAGS="-I/opt/pware/include" \
LDFLAGS="-L/opt/pware/lib" \
DBLIB=-ldb \
./configure --prefix=/opt/pware  --enable-shared

make

Fix:

In shlib.conf I think it would be best to move the case statement for aix4 above the aix5 statement and then make the match be *-*-aix* which would act as a catch all for aix and if there were specific changes for an AIX level that could be added above the AIX catch all statement.  I attempted to create a patch file, but it wasn't happy about the lines starting in a "-".  Below is the aix chunks from version 1.9.3.


*-*-aix4.*)
        SHLIBVEXT='.a.$(LIBMAJOR).$(LIBMINOR)'
        SHLIBEXT=.a
        # AIX doesn't need separate PIC objects
        SHOBJEXT=.o
        SHLIB_EXPFLAGS='  $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
        PROFFLAGS=-pg
        # Dynamically loaded object can have whatever suffix, but don't
        # make archives like for shared libraries.
        DYNOBJEXT=.so
        #
        if test "$ac_cv_c_compiler_gnu" = "yes" ; then
          wl_prefix=-Wl,
          RPATH_FLAG='-Wl,-blibpath:'
          LDCOMBINE='$(CC) -shared -v -o shr.o.$(LIBMAJOR).$(LIBMINOR) $$objlist -nostartfiles -Xlinker -bgcbypass:1 -Xlinker -bfilelist -Xlinker -bM:SRE -Xlinker -bE:$(SHLIB_EXPORT_FILE) -Xlinker -bernotok $(SHLIB_EXPFLAGS)
$(LDFLAGS) -lc $$initfini'
          LDCOMBINE_DYN='$(CC) -shared -v -o $@ $$objlist -nostartfiles -Xlinker -bgcbypass:1 -Xlinker -bfilelist -Xlinker -bM:SRE -Xlinker -bE:$(SHLIB_EXPORT_FILE) -Xlinker -bernotok $(SHLIB_EXPFLAGS) $(LDFLAGS) -lc $$initfi
ni'
        else
          wl_prefix=
          RPATH_FLAG=-blibpath:
          LDCOMBINE='/bin/ld -o shr.o.$(LIBMAJOR).$(LIBMINOR) $$objlist -H512 -T512 -bnoentry -bgcbypass:1 -bnodelcsect -bfilelist -bM:SRE -bE:$(SHLIB_EXPORT_FILE) -bernotok $(SHLIB_EXPFLAGS) $(LDFLAGS) -lc $$initfini'
          LDCOMBINE_DYN='/bin/ld -o $@ $$objlist -H512 -T512 -bnoentry -bgcbypass:1 -bnodelcsect -bfilelist -bM:SRE -bE:$(SHLIB_EXPORT_FILE) -bernotok $(SHLIB_EXPFLAGS) $(LDFLAGS) -lc $$initfini'
        fi
        # Assume initialization always delayed.
        INIT_FINI_PREP="wl=${wl_prefix}; "'i=1; initfini=; for f in . $(LIBFINIFUNC); do if test $$f != .; then initfini="$$initfini $${wl}-binitfini::$$f:$$i"; else :; fi; i=`expr $$i + 1`; done'
        use_linker_fini_option=yes
        MAKE_SHLIB_COMMAND="${INIT_FINI_PREP} && ${LDCOMBINE}"' && ar cq $@ shr.o.$(LIBMAJOR).$(LIBMINOR) && chmod +x $@ && rm -f shr.o.$(LIBMAJOR).$(LIBMINOR)'
        MAKE_DYNOBJ_COMMAND="${INIT_FINI_PREP} && ${LDCOMBINE_DYN}"
        RPATH_TAIL=:/usr/lib:/lib
        PROG_RPATH_FLAGS='$(RPATH_FLAG)$(PROG_RPATH):'"$RPATH_TAIL"
        CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) $(PROG_RPATH_FLAGS) $(CFLAGS) $(LDFLAGS)'
        CC_LINK_STATIC='$(CC) $(PROG_LIBPATH) $(CFLAGS) $(LDFLAGS)'
        CXX_LINK_SHARED='$(CXX) $(PROG_LIBPATH) $(PROG_RPATH_FLAGS) $(CXXFLAGS) $(LDFLAGS)'
        CXX_LINK_STATIC='$(CXX) $(PROG_LIBPATH) $(CXXFLAGS) $(LDFLAGS)'
        # $(PROG_RPATH) is here to handle things like a shared tcl library
        RUN_ENV='LIBPATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`:$(PROG_RPATH):/usr/lib:/usr/local/lib; export LIBPATH; '
        RUN_VARS='LIBPATH'
        ;;

*-*-aix*)
        SHLIBVEXT='.so.$(LIBMAJOR).$(LIBMINOR)'
        SHLIBEXT=.so
        # AIX doesn't need separate PIC objects
        SHOBJEXT=.o
        SHLIB_EXPFLAGS='  $(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
        PROFFLAGS=-pg
        if test "$ac_cv_c_compiler_gnu" = "yes" ; then
          wl_prefix=-Wl,
          RPATH_FLAG='-Wl,-blibpath:'
          LDCOMBINE='$(CC) -shared -v -o $@ $$objlist -nostartfiles -Xlinker -bgcbypass:1 -Xlinker -bfilelist -Xlinker -bM:SRE -Xlinker -bE:$(SHLIB_EXPORT_FILE) -Xlinker -bernotok -Xlinker -brtl $(SHLIB_EXPFLAGS) $(LDFLAGS) -lc $$initfini'
        else
          wl_prefix=
          RPATH_FLAG=-blibpath:
          LDCOMBINE='/bin/ld -o $@ $$objlist -H512 -T512 -bnoentry -bgcbypass:1 -bnodelcsect -bfilelist -bM:SRE -bE:$(SHLIB_EXPORT_FILE) -bernotok -brtl $(SHLIB_EXPFLAGS) $(LDFLAGS) -lc $$initfini'
        fi
        # Assume initialization always delayed.
        INIT_FINI_PREP="wl=${wl_prefix}; "'i=1; initfini=; for f in . $(LIBFINIFUNC); do if test $$f != .; then initfini="$$initfini $${wl}-binitfini::$$f:$$i"; else :; fi; i=`expr $$i + 1`; done'
        use_linker_fini_option=yes
        MAKE_SHLIB_COMMAND="${INIT_FINI_PREP} && ${LDCOMBINE}"
        RPATH_TAIL=:/usr/lib:/lib
        PROG_RPATH_FLAGS='$(RPATH_FLAG)$(PROG_RPATH):'"$RPATH_TAIL"
        CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) $(PROG_RPATH_FLAGS) $(CFLAGS) $(LDFLAGS)'
        CC_LINK_STATIC='$(CC) $(PROG_LIBPATH) $(CFLAGS) $(LDFLAGS)'
        CXX_LINK_SHARED='$(CXX) $(PROG_LIBPATH) $(PROG_RPATH_FLAGS) $(CXXFLAGS) $(LDFLAGS)'
        CXX_LINK_STATIC='$(CXX) $(PROG_LIBPATH) $(CXXFLAGS) $(LDFLAGS)'
        # $(PROG_RPATH) is here to handle things like a shared tcl library
        RUN_ENV='LIBPATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`:$(PROG_RPATH):/usr/lib:/usr/local/lib; export LIBPATH; '
        RUN_VARS='LIBPATH'
        ;;


Thanks,

Josh

Josh Peacock
UNIX Administrator
Sanford Health

-----------------------------------------------------------------------
Confidentiality Notice: This e-mail message, including any attachments,
is for the sole use of the intended recipient(s) and may contain
privileged and confidential information.  Any unauthorized review, use,
disclosure or distribution is prohibited.  If you are not the intended
recipient, please contact the sender by reply e-mail and destroy
all copies of the original message.



More information about the krb5-bugs mailing list