From 2c69cb07e97cd46f1cb45f1af06bfbc4ea889499 Mon Sep 17 00:00:00 2001 From: Dongxiao Xu Date: Mon, 6 Dec 2010 20:26:08 +0800 Subject: package.bbclass: Use hard link for package split instead of copy When doing package split, we use hard link instead of copy, which can save about 10% disk space when building poky-image-minimal. If fail, it will fall back to the copyfile function. [Updated by Richard to use os.link and avoid an exec() call per file] Signed-off-by: Dongxiao Xu --- meta/classes/package.bbclass | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index dcece40acd..2f3e9bfd14 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -427,22 +427,13 @@ python populate_packages () { fpath = os.path.join(root,file) dpath = os.path.dirname(fpath) bb.mkdirhier(dpath) - - # Check if this is a hardlink to something... if it is - # attempt to preserve the link information, instead of copy. if not os.path.islink(file): - s = os.stat(file) - if s.st_nlink > 1: - file_reference = "%d_%d" % (s.st_dev, s.st_ino) - if file_reference not in file_links: - # Save the reference for next time... - file_links[file_reference] = fpath - else: - os.link(file_links[file_reference], fpath) - continue + os.link(file, fpath) + continue ret = bb.copyfile(file, fpath) if ret is False or ret == 0: raise bb.build.FuncFailed("File population failed") + del localdata os.chdir(workdir) -- cgit 1.2.3-korg