Monday, September 10, 2012
confd build error: "cannot find -lconfd"
Q: I've set up the linked directory required for building a ref_platform that uses confd, and upgraded to a newer version of confd, but the build is failing :
*** Linking elemConfdProxy
/usr/bin/ld: cannot find -lconfd
collect2: ld returned 1 exit status
make[3]: *** [/home/jmir/SystemManager/from_ipw/element_3.2.2/ref_platforms/generic_confd_3.5.0/bin/linux-x86_64/elemConfdProxy]
Error 1
- the directory element_3.2.2/confd/confd-36/x86_64 exists
- it contains the softlink to my $CONFD_ROOT
- $CONFD_VERSION in my environment is set to the new version i.e. "36"
- metadata/staging_confd.xml is updated with the new version
A: There is one more step, which isn't noted in the README.confd file. You must change the CONFD_VERSION reference in your local Makefile in ref_platforms/generic_confd_3.5.0 :
ELEMENT_OPTIONS ?= CONFD_VERSION=36
Tuesday, September 04, 2012
sysmgr_support.mk: No such file
Q: Building element_3.2.2 for the first time from a tarball delivery, while making the generic_cluster reference platform I get this build error immediately:
make[1]: Entering directory `/home/jmir/Element/Releases/3.2.2/element_3.2.2/ref_platforms/generic_cluster'
/home/jmir/Element/Releases/3.2.2/element_3.2.2/ref_platforms/generic_cluster/../../build/packages/packages.mk:28: /home/jmir/Element/Releases/3.2.2/element_3.2.2/ref_platforms/generic_cluster/../../build/packages/sysmgr/sysmgr_support.mk: No such file or directory
make[1]: *** No rule to make target `/home/jmir/Element/Releases/3.2.2/element_3.2.2/ref_platforms/generic_cluster/../../build/packages/sysmgr/sysmgr_support.mk'. Stop.
make[1]: Leaving directory `/home/jmir/Element/Releases/3.2.2/element_3.2.2/ref_platforms/generic_cluster'
make: *** [xml-check] Error 2
/home/jmir/Element/Releases/3.2.2/element_3.2.2/ref_platforms/generic_cluster/../../build/packages/packages.mk:28: /home/jmir/Element/Releases/3.2.2/element_3.2.2/ref_platforms/generic_cluster/../../build/packages/sysmgr/sysmgr_support.mk: No such file or directory
make[1]: *** No rule to make target `/home/jmir/Element/Releases/3.2.2/element_3.2.2/ref_platforms/generic_cluster/../../build/packages/sysmgr/sysmgr_support.mk'. Stop.
make[1]: Leaving directory `/home/jmir/Element/Releases/3.2.2/element_3.2.2/ref_platforms/generic_cluster'
make: *** [xml-check] Error 2
I don't even want to use sysmgr right now, so why is it complaining?
A: There was a packaging problem with 3.2.2 (that has since been corrected in subsequent releases); in order to work around it, assuming you don't need sysmgr, remove this line from build/packages/packages.mk :
include $(ELEMENT_PATH)/$(PACKAGE_DIR)/sysmgr/sysmgr_support.mk
Rebuild afterward and all should be well. If you do however need sysmgr, you'll need to get an updated tarball which includes it all.
free invisible web counter