Hi! The sh manpage for option -e says: -e errexit If not interactive, exit immediately if any untested command fails. The exit status of a com- mand is considered to be explicitly tested if the command is used to control an if, elif, while, or until; or if the command is the left hand operand of an ``&&'''' or ``||'''' operator. In short, the statement test -x /usr/xpg4/bin/sed fails on NetBSD (directory xpg4 does not exist) and aborts build process immediately. Attached patch fixes this. Signed-off-by: Christoph Egger <Christoph.Egger@amd.com> -- AMD Saxony, Dresden, Germany Operating System Research Center Legal Information: AMD Saxony Limited Liability Company & Co. KG Sitz (Geschäftsanschrift): Wilschdorfer Landstr. 101, 01109 Dresden, Deutschland Registergericht Dresden: HRA 4896 vertretungsberechtigter Komplementär: AMD Saxony LLC (Sitz Wilmington, Delaware, USA) Geschäftsführer der AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Christoph Egger writes ("[Xen-devel] [PATCH][XEN] Build fix for 64bit"):> The sh manpage for option -e says: > > -e errexit If not interactive, exit immediately if > any untested command fails. The exit > status of a com- mand is considered to > be explicitly tested if the command is > used to control an if, elif, while, or > until; or if the command is the left > hand operand of an ``&&'''' or ``||'''' > operator.This description isn''t quite relevant for the code fragment> -test -x /usr/xpg4/bin/sed && SED=/usr/xpg4/bin/sedsince here test _is_ the left hand operand of &&. But I think that NetBSD''s behaviour here is arguably defensible, because an alternative reasonable interpretation of a && b in the context of set -e is that _both_ commands must succeed. On the other hand, NetBSD''s behaviour is not according to its own documentation and also in contravention of SuSv3, whose section http://www.opengroup.org/onlinepubs/009695399/utilities/set.html says about set -e: if a simple command fails for any of the reasons listed in Consequences of Shell Errors or returns an exit status value >0, and is not part of the compound list following a while, until, or if keyword, and is not a part of an AND or OR list and of course `test'' is a `simple command'' as defined. So I think your patch should be applied to Xen but you should also report a bug to NetBSD, for them to fix either their documentation or their code. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel