Re: problem building root 5.24.0 on Ubuntu 9.10

From: ganis <gerardo.ganis_at_cern.ch>
Date: Wed, 11 Nov 2009 18:00:51 +0100

    Dear Jan,

    So, there is a (harmless) warning and the weird problem investigated at    

              https://savannah.cern.ch/bugs/?47644

    could you please try by replacing

             net/xrootd/Module.mk

   with the attached file?

   Thanks,

   Gerri   

Jan Therhaag wrote:
> Dear Gerardo,
>
> following your instructions I get:
>
> therhaag_at_HAL:~/Downloads/root$ sudo make all-xrootd > xroot-build.log
> XrdFrmConfig.cc: In member function ‘int XrdFrmConfig::Configure(int,
> char**, int (*)())’:
> XrdFrmConfig.cc:360: warning: ignoring return value of ‘ssize_t
> write(int, const void*, size_t)’, declared with attribute
> warn_unused_result
> touch: cannot touch `net/xrootd/src/xrootd/LastBuild.d': No such file or
> directory
> make: *** [net/xrootd/src/xrootd/LastBuild.d] Error 1
>
> The logfile (xroot-build.log) is attached.
>
> Thank you for your help.
> Jan
>
> On Wed, 2009-11-11 at 16:55 +0100, Gerardo Ganis wrote:
>
>> Dear Jan,
>>
>> With 5-24-00 this indicates that the xrootd build failed. We have
>> other people reporting problems with the newest
>> Ubuntu but we were not able to reproduce them on our installations.
>>
>> Unfortunately, until a couple of months ago, the build system was
>> not detecting the xrootd failure correctly and
>> continued to build failing at 'netx' as in your case.We fixed this
>> issue in the trunk, 5-25-02 and 5-24-00a,b:
>> if you use one of these versions you should get the build error at
>> xrootd.
>>
>> To find out what's wrong with the xrootd build, you should do the
>> following:
>>
>> make distclean-xrootd
>> make all-xrootd > xrootd-build.log
>>
>> Please post the error that you get on the screen and xrootd-buid.log .
>>
>> G. Ganis
>>
>>
>> Jan Therhaag wrote:
>>
>>> Dear ROOT-users,
>>>
>>> I have a problem building ROOT 5.24.0 on my laptop which is running
>>> Ubuntu 9.10 with gcc4.4.1. It seems a library (needed by xroot?) is
>>> missing. Output (excerpt):
>>>
>>> g++ -shared -Wl,-soname,libNetx.so -m32 -O2 -o lib/libNetx.so
>>> net/netx/src/TXNetFile.o net/netx/src/TXNetFileStager.o
>>> net/netx/src/TXNetSystem.o net/netx/src/G__Netx.o
>>> -Lnet/xrootd/src/xrootd/lib -lXrdOuc -lXrdSys -Llib -lXrdClient
>>> /usr/bin/ld: cannot find -lXrdOuc
>>> collect2: ld returned 1 exit status
>>> make: *** [lib/libNetx.so] Error 1
>>> rm core/utils/src/RStl_tmp.cxx core/utils/src/rootcint_tmp.cxx
>>>
>>> Any ideas how to solve this problem?
>>>
>>> Thanks in advance
>>> Jan
>>>
>>> --------------
>>>
>>> Jan Therhaag
>>> Physikalisches Institut, Universität Bonn
>>> Zi 310, Tel.: 0228 73 2279
>>> eMail: therhaag_at_physik.uni-bonn.de
>>>
>>>
>>
>
>

# Module.mk for xrootd module
# Copyright (c) 2000 Rene Brun and Fons Rademakers
#
# Author: G Ganis, 27/7/2004

MODNAME    := xrootd
MODDIR     := net/$(MODNAME)

MODDIRS := $(MODDIR)/src
XROOTDDIR  := $(MODDIR)
XROOTDDIRS := $(MODDIRS)
XROOTDDIRD := $(MODDIRS)/xrootd
XROOTDDIRI := $(MODDIRS)/xrootd/src
XROOTDDIRL := $(MODDIRS)/xrootd/lib
XROOTDMAKE := $(XROOTDDIRD)/GNUmakefile
XROOTDBUILD:= $(XROOTDDIRD)/LastBuild.d

##### Xrootd config options #####
ifeq ($(PLATFORM),win32)
ifeq (yes,$(WINRTDEBUG))
XRDDBG = "Win32 Debug"
else
XRDDBG = "Win32 Release"
endif
else
ifeq (debug,$(findstring debug,$(ROOTBUILD))) XRDDBG = "--build=debug"
else
XRDDBG =
endif
endif
ifeq ($(PLATFORM),macosx)
XRDSOEXT = so
else
XRDSOEXT = $(SOEXT)
endif
ifeq ($(PLATFORM),win32)
XRDSOEXT = lib
endif

##### Xrootd executables #####
ifneq ($(PLATFORM),win32)
XRDEXEC = xrootd olbd xrdcp xrd xrdpwdadmin cmsd xrdstagetool xprep ifneq ($(BUILDXRDGSI),)
XRDEXEC += xrdgsiproxy
endif
else
XRDEXEC = xrdcp.exe
endif
XRDEXECS := $(patsubst %,bin/%,$(XRDEXEC)) XRDEXECSA := $(patsubst %,$(XROOTDDIRD)/bin/%,$(XRDEXEC))

##### Xrootd plugins #####
ifeq ($(PLATFORM),win32)

XRDPLUGINSA := $(XROOTDDIRL)/libXrdClient.$(XRDSOEXT)
XRDPLUGINS  := $(XRDPLUGINSA)
XRDLIBS     := $(XRDPLUGINS)
else
XRDLIBS     := $(XROOTDDIRL)/libXrdOuc.a $(XROOTDDIRL)/libXrdNet.a \
               $(XROOTDDIRL)/libXrdSys.a \
               $(LPATH)/libXrdClient.$(XRDSOEXT) $(LPATH)/libXrdSut.$(XRDSOEXT)
XRDNETXD    := $(XROOTDDIRL)/libXrdOuc.a $(XROOTDDIRL)/libXrdSys.a \
               $(LPATH)/libXrdClient.$(XRDSOEXT)
XRDPROOFXD := $(XRDLIBS) $(XROOTDDIRL)/libXrd.a XROOTDDIRP := $(LPATH)
ifeq ($(ARCH),win32gcc)
XRDLIBS := $(patsubst $(LPATH)/%.$(XRDSOEXT),bin/%.$(XRDSOEXT),$(XRDLIBS)) endif
endif

##### Xrootd headers used by netx, proofx#####

XRDHDRS    := $(wildcard $(XROOTDDIRI)/Xrd/*.hh) $(wildcard $(XROOTDDIRI)/XrdClient/*.hh) \
              $(wildcard $(XROOTDDIRI)/XrdNet/*.hh) $(wildcard $(XROOTDDIRI)/XrdOuc/*.hh) \
              $(wildcard $(XROOTDDIRI)/XrdSec/*.hh) $(wildcard $(XROOTDDIRI)/XrdSut/*.hh) \
              $(wildcard $(XROOTDDIRI)/XrdSys/*.hh)

##### Xrootd headers, sources, config dependences #####

XROOTDDEPS := $(wildcard $(XROOTDDIRI)/*/*.hh) $(wildcard $(XROOTDDIRI)/*/*.cc)
XROOTDCFGD := $(wildcard $(XROOTDDIRD)/config/*) $(wildcard $(XROOTDDIRD)/config/test/*) \
              $(XROOTDDIRD)/configure.classic

# used in the main Makefile
ALLLIBS += $(XRDLIBS)
ifeq ($(PLATFORM),win32)
ALLEXECS += $(XRDEXECS)
endif

# Local targets
TARGETS := $(XRDLIBS)
ifeq ($(PLATFORM),win32)
TARGETS += $(XRDEXECS)
endif

# Workaround for 'sudo make'
ifeq ($(PWD),)
PWD := $(shell pwd)
endif

##### local rules #####
.PHONY: all-$(MODNAME) clean-$(MODNAME) distclean-$(MODNAME)

ifneq ($(PLATFORM),win32)
$(XROOTDMAKE): $(XROOTDCFGD)

		@(cd $(XROOTDDIRS); \
		RELE=`uname -r`; \
		CHIP=`uname -m | tr '[A-Z]' '[a-z]'`; \
		PROC=`uname -p`; \
                xarch="" ; \
		case "$(ARCH):$$RELE:$$CHIP:$$PROC" in \
		freebsd*:*)      xopt="--ccflavour=gcc";; \
		linuxicc:*)      xopt="--ccflavour=icc --use-xrd-strlcpy";; \
		linuxia64ecc:*)  xopt="--ccflavour=icc --use-xrd-strlcpy";; \
		linuxia64gcc:*)  xopt="--ccflavour=gccia64 --use-xrd-strlcpy";; \
		linuxx8664gcc:*) xopt="--ccflavour=gccx8664 --use-xrd-strlcpy";; \
		linuxx8664icc:*) xopt="--ccflavour=iccx8664 --use-xrd-strlcpy";; \
		linuxppc64gcc:*) xopt="--ccflavour=gccppc64 --use-xrd-strlcpy";; \
		linux*:*)        xarch="i386_linux"; xopt="--ccflavour=gcc --use-xrd-strlcpy";; \
		macosx64:*)      xopt="--ccflavour=macos64";; \
		macosxicc:*)     xopt="--ccflavour=icc";; \
		macosx*:*)       xopt="--ccflavour=macos";; \
		solaris*:*:i86pc:x86*) xopt="--ccflavour=sunCCamd --use-xrd-strlcpy";; \
		solaris*:*:i86pc:*) xopt="--ccflavour=sunCCi86pc --use-xrd-strlcpy";; \
		solarisgcc:5.8)  xopt="--ccflavour=gcc";; \
		solaris*:5.8)    xopt="--ccflavour=sunCC";; \
		solarisgcc:5.9)  xopt="--ccflavour=gcc";; \
		solaris*:5.9)    xopt="--ccflavour=sunCC";; \
		solarisgcc:*)    xopt="--ccflavour=gcc --use-xrd-strlcpy";; \
		solaris*:*)      xopt="--ccflavour=sunCC --use-xrd-strlcpy";; \
		win32gcc:*)      xopt="win32gcc";; \
		*)               xopt="";; \
		esac; \
		if [ "x$(KRB5LIB)" = "x" ] ; then \
		   xopt="$$xopt --disable-krb5"; \
		fi; \
		if [ "x$(BUILDXRDGSI)" = "x" ] ; then \
		   xopt="$$xopt --disable-gsi"; \
		fi; \
		if [ ! "x$(SSLLIBDIR)" = "x" ] ; then \
		   xlib=`echo $(SSLLIBDIR) | cut -c3-`; \
		   xopt="$$xopt --with-ssl-libdir=$$xlib"; \
		elif [ ! "x$(SSLLIB)" = "x" ] ; then \
		   xlibs=`echo $(SSLLIB)`; \
		   for l in $$xlibs; do \
   		      if [ ! "x$$l" = "x-lssl" ] && [ ! "x$$l" = "x-lcrypto" ]  ; then \
		         xlib=`dirname $$l`; \
  		         xopt="$$xopt --with-ssl-libdir=$$xlib"; \
      		         break; \
     		      fi; \
   		   done; \
		fi; \
		if [ ! "x$(SSLINCDIR)" = "x" ] ; then \
		   xinc=`echo $(SSLINCDIR)`; \
		   xopt="$$xopt --with-ssl-incdir=$$xinc"; \
		fi; \
		if [ ! "x$(SSLSHARED)" = "x" ] ; then \
		   xsha=`echo $(SSLSHARED)`; \
		   xopt="$$xopt --with-ssl-shared=$$xsha"; \
		fi; \
		if [ ! "x$(SHADOWFLAGS)" = "x" ] ; then \
		   xopt="$$xopt --enable-shadowpw"; \
		fi; \
		if [ ! "x$(AFSLIBDIR)" = "x" ] ; then \
		   xlib=`echo $(AFSLIBDIR) | cut -c3-`; \
		   xopt="$$xopt --with-afs-libdir=$$xlib"; \
		elif [ ! "x$(AFSLIB)" = "x" ] ; then \
		   xlibs=`echo $(AFSLIB)`; \
		   for l in $$xlibs; do \
   		      if [ ! "x$$l" = "x-lafsrpc" ] && [ ! "x$$l" = "x-lafsauthent" ]  ; then \
		         xlib=`dirname $$l`; \
  		         xopt="$$xopt --with-afs-libdir=$$xlib"; \
      		         break; \
     		      fi; \
   		   done; \
		fi; \
		if [ ! "x$(AFSINCDIR)" = "x" ] ; then \
		   xinc=`echo $(AFSINCDIR) | cut -c3-`; \
		   xopt="$$xopt --with-afs-incdir=$$xinc"; \
		fi; \
		if [ ! "x$(AFSSHARED)" = "x" ] ; then \
		   xsha=`echo $(AFSSHARED)`; \
		   xopt="$$xopt --with-afs-shared=$$xsha"; \
		fi; \
		if [ ! "x$(XRDADDOPTS)" = "x" ] ; then \
		   xaddopts=`echo $(XRDADDOPTS)`; \
		   xopt="$$xopt $$xaddopts"; \
		fi; \
		xopt="$$xopt --disable-krb4 --enable-echo --no-arch-subdirs --disable-mon --with-cxx=$(CXX) --with-ld=$(LD)"; \
		cd xrootd; \
		echo "Options to Xrootd-configure: $$xarch $$xopt $(XRDDBG)"; \
		GNUMAKE=$(MAKE) ./configure.classic $$xarch $$xopt $(XRDDBG); \
		rc=$$? ; \
		if [ $$rc != "0" ] ; then \
		   echo "*** Error condition reported by Xrootd-configure (rc = $$rc):"; \
		   rm -f $(XROOTDMAKE); \
	 	   exit 1; \
		fi)

else
$(XROOTDMAKE):
		@(if [ -d $(XROOTDDIRD)/pthreads-win32 ]; then \
    		   cp $(XROOTDDIRD)/pthreads-win32/lib/*.dll "bin" ; \
		   cp $(XROOTDDIRD)/pthreads-win32/lib/*.lib "lib" ; \
		   cp $(XROOTDDIRD)/pthreads-win32/include/*.h "include" ; \
		fi)
		@touch $(XROOTDMAKE)

endif

$(XRDEXECS): $(XRDEXECSA)
ifeq ($(PLATFORM),win32)

		@(echo "Copying xrootd executables ..." ; \
		cp $(XROOTDDIRD)/bin/*.exe "bin" ;)

endif

$(XROOTDBUILD): $(XROOTDMAKE) $(XROOTDDEPS) ifneq ($(PLATFORM),win32)

		@(topdir=$(PWD); \
		cd $(XROOTDDIRD); \
	   	echo "*** Building xrootd ... topdir= $$topdir" ; \
		$(MAKE); \
		rc=$$? ; \
		if [ $$rc != "0" ] ; then \
		   echo "*** Error condition reported by make (rc = $$rc):" \
		   rm -f $(XROOTDMAKE) \
	 	   exit 1; \
		fi ; \
		cd $$topdir ; \
		if [ -d $(XROOTDDIRL) ]; then \
		   lsplug=`find $(XROOTDDIRL) -name "libXrd*.$(XRDSOEXT)"` ;\
		   lsplug="$$lsplug `find $(XROOTDDIRL) -name "libXrd*.dylib"`" ;\
		   for i in $$lsplug ; do \
		      echo "Copying $$i ..." ; \
		      if [ "x$(ARCH)" = "xwin32gcc" ] ; then \
		         cp $$i bin ; \
		         lname=`basename $$i` ; \
		         ln -sf bin/$$lname $(LPATH)/$$lname ; \
		         ln -sf bin/$$lname "$(LPATH)/$$lname.a" ; \
		      else \
		         if [ "x$(PLATFORM)" = "xmacosx" ] ; then \
		            lname=`basename $$i` ; \
		            install_name_tool -id $(LIBDIR)/$$lname $$i ; \
		         fi ; \
		         cp -p $$i $(LPATH)/ ; \
		      fi ; \
		   done ; \
		fi ; \
		for i in $(XRDEXEC); do \
		   fopt="" ; \
		   if [ -f bin/$$i ] ; then \
		      fopt="-newer bin/$$i" ; \
		   fi ; \
		   bexe=`find $(XROOTDDIRD)/bin $$fopt -name $$i 2>/dev/null` ; \
		   if test "x$$bexe" != "x" ; then \
		      echo "Copying $$bexe executables ..." ; \
		      cp -p $$bexe bin/$$i ; \
		   fi ; \
		done ; \
		touch $(XROOTDBUILD))
else
		@(cd $(XROOTDDIRD); \
		echo "*** Building xrootd ..."; \
		unset MAKEFLAGS; \
		nmake -f Makefile.msc CFG=$(XRDDBG))

endif

### Rules for single components
#
$(LPATH)/libXrdClient.$(XRDSOEXT): $(XROOTDDIRL)/libXrdClient.$(XRDSOEXT) $(XROOTDDIRL)/libXrdClient.$(XRDSOEXT): $(XROOTDBUILD) #
$(LPATH)/libXrdSut.$(XRDSOEXT): $(XROOTDDIRL)/libXrdSut.$(XRDSOEXT) $(XROOTDDIRL)/libXrdSut.$(XRDSOEXT): $(XROOTDBUILD) #

$(XROOTDDIRL)/libXrdOuc.a: $(XROOTDBUILD)
$(XROOTDDIRL)/libXrdNet.a: $(XROOTDBUILD)
$(XROOTDDIRL)/libXrdSys.a: $(XROOTDBUILD)
$(XROOTDDIRL)/libXrd.a: $(XROOTDBUILD)
$(XROOTDDIRL)/libXrdClient.a: $(XROOTDBUILD)
$(XROOTDDIRL)/libXrdSut.a: $(XROOTDBUILD)

### General rules

all-$(MODNAME): $(TARGETS)

clean-$(MODNAME):
ifneq ($(PLATFORM),win32)

		@(if [ -f $(XROOTDMAKE) ]; then \
		   $(MAKE) clean-netx;  \
		   $(MAKE) clean-proofx;  \
		   cd $(XROOTDDIRD); \
		   $(MAKE) clean; \
		fi)
else
		@(if [ -f $(XROOTDMAKE) ]; then \
   		   cd $(XROOTDDIRD); \
		   unset MAKEFLAGS; \
		   nmake -f Makefile.msc clean; \
		fi)

endif

clean:: clean-$(MODNAME)

distclean-$(MODNAME): clean-$(MODNAME)

                @rm -rf $(XRDEXECS) $(LPATH)/libXrd* bin/libXrd* $(XROOTDBUILD) ifneq ($(PLATFORM),win32)

		@(if [ -f $(XROOTDMAKE) ]; then \
		   $(MAKE) distclean-netx;  \
		   $(MAKE) distclean-proofx;  \
		   cd $(XROOTDDIRD); \
		   $(MAKE) distclean; \
		fi)
else
		@(if [ -f $(XROOTDMAKE) ]; then \
		   cd $(XROOTDDIRD); \
		   unset MAKEFLAGS; \
		   nmake -f Makefile.msc distclean; \
		   rm -f GNUmakefile; \
		fi)

endif

distclean:: distclean-$(MODNAME) Received on Wed Nov 11 2009 - 18:07:02 CET

This archive was generated by hypermail 2.2.0 : Wed Nov 11 2009 - 23:50:01 CET