17596443 nm -p output change breaks userland
17361780 LD_Z_TEXT should, ya know, contain -z text not -z direct
17602195 elf_wrong_location_check could be better
--- a/components/puppet/puppet.p5m Wed Oct 16 06:53:51 2013 -0700
+++ b/components/puppet/puppet.p5m Wed Oct 16 10:00:08 2013 -0700
@@ -169,13 +169,8 @@
file files/user_attr path=etc/user_attr.d/puppet
file files/puppet.xml path=lib/svc/manifest/application/puppet.xml
file files/puppet.stencil path=lib/svc/stencils/puppet.stencil
-# PuppetAudit.so is 64-bit but its enclosing directory is
-# not a known 64-bit directory; for now, ignore this lint error.
-# This directory will be renamed to $(MACH64)-solaris$(SOLARIS_VERSION)
-# in a follow-up integration and its name added to userland.py
file ext/PuppetAudit.so \
- path=usr/ruby/1.9/lib/$(MACH64)/ruby/vendor_ruby/1.9.1/$(MACH)-solaris$(SOLARIS_VERSION)/PuppetAudit.so \
- pkg.linted.userland.action001.2=true
+ path=usr/ruby/1.9/lib/$(MACH64)/ruby/vendor_ruby/1.9.1/$(MACH)-solaris$(SOLARIS_VERSION)/PuppetAudit.so
file path=usr/ruby/1.9/lib/$(MACH64)/ruby/vendor_ruby/1.9.1/hiera/backend/puppet_backend.rb
file path=usr/ruby/1.9/lib/$(MACH64)/ruby/vendor_ruby/1.9.1/hiera/scope.rb
file path=usr/ruby/1.9/lib/$(MACH64)/ruby/vendor_ruby/1.9.1/hiera_puppet.rb
--- a/make-rules/configure.mk Wed Oct 16 06:53:51 2013 -0700
+++ b/make-rules/configure.mk Wed Oct 16 10:00:08 2013 -0700
@@ -102,6 +102,7 @@
# temporarily work around some issues
CONFIGURE_ENV += "ac_cv_func_realloc_0_nonnull=yes"
+CONFIGURE_ENV += "NM=/usr/gnu/bin/nm"
COMPONENT_BUILD_ENV += "ac_cv_func_realloc_0_nonnull=yes"
# configure the unpacked source for building 32 and 64 bit version
--- a/make-rules/shared-macros.mk Wed Oct 16 06:53:51 2013 -0700
+++ b/make-rules/shared-macros.mk Wed Oct 16 10:00:08 2013 -0700
@@ -631,7 +631,7 @@
# only be required if the component's native build is horribly broken.
LD_Z_RESCAN_NOW = -z rescan-now
-LD_Z_TEXT = -z direct
+LD_Z_TEXT = -z text
# make sure that -lc is always present when building shared objects.
LD_DEF_LIBS += -lc
@@ -642,6 +642,9 @@
# eliminate unreferenced dynamic dependencies
LD_Z_IGNORE = -z ignore
+# eliminate comments
+LD_Z_STRIP_CLASS = -z strip-class=comment
+
# use direct binding
LD_B_DIRECT = -Bdirect
@@ -686,7 +689,8 @@
# libraries to this macro, as it will apply to everything linked during the
# component build.
LD_OPTIONS += $(LD_MAP_NOEXSTK.$(MACH)) $(LD_MAP_NOEXDATA.$(MACH)) \
- $(LD_MAP_PAGEALIGN) $(LD_B_DIRECT) $(LD_Z_IGNORE)
+ $(LD_MAP_PAGEALIGN) $(LD_B_DIRECT) $(LD_Z_IGNORE) \
+ $(LD_Z_STRIP_CLASS)
# only used on executables
LD_EXEC_OPTIONS = $(LD_Z_ASLR)
--- a/tools/python/pkglint/userland.py Wed Oct 16 06:53:51 2013 -0700
+++ b/tools/python/pkglint/userland.py Wed Oct 16 10:00:08 2013 -0700
@@ -296,13 +296,13 @@
return result
- def __elf_wrong_location_check(self, path):
+ def __elf_wrong_location_check(self, path, inspath):
result = None
ei = elf.get_info(path)
bits = ei.get("bits")
type = ei.get("type");
- elems = os.path.dirname(path).split("/")
+ elems = os.path.dirname(inspath).split("/")
path64 = False
for p in self.pathlist64:
@@ -331,9 +331,11 @@
if action.name not in ["file"]:
return
+ inspath=action.attrs["path"]
+
path = action.hash
if path == None or path == 'NOHASH':
- path = action.attrs["path"]
+ path = inspath
# check for writable files without a preserve attribute
if "mode" in action.attrs:
@@ -371,9 +373,9 @@
msgid="%s%s.1" % (self.name, pkglint_id))
elif elf.is_elf_object(fullpath):
# 32/64 bit in wrong place
- result = self.__elf_wrong_location_check(fullpath)
+ result = self.__elf_wrong_location_check(fullpath, inspath)
if result != None:
- engine.error(result % path,
+ engine.error(result % inspath,
msgid="%s%s.2" % (self.name, pkglint_id))
result = self.__elf_runpath_check(fullpath, engine)
if result != None: