Skip to content

Commit

Permalink
build/files.c: Only check build-ids for executable files in the main …
Browse files Browse the repository at this point in the history
…package.

generateBuildIDs should mimic what find-debuginfo.sh does. Only check
build-ids for executable files in non-debuginfo packages. This moves the
isDbg check up so the is executeble check can be done when the file is
part of the main package.

This fixes the build of qemu and uboot-tools in fedora. Both ship
non-executable ELF bios files in architecture specific packages.
https://bugzilla.redhat.com/show_bug.cgi?id=1433837

Signed-off-by: Mark Wielaard <[email protected]>
  • Loading branch information
Mark Wielaard authored and pmatilai committed Mar 21, 2017
1 parent c7eefa5 commit c9035d4
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions build/files.c
Original file line number Diff line number Diff line change
Expand Up @@ -1711,6 +1711,19 @@ static int generateBuildIDs(FileList fl)
for (i = 0, flp = fl->files.recs; i < fl->files.used; i++, flp++) {
struct stat sbuf;
if (lstat(flp->diskPath, &sbuf) == 0 && S_ISREG (sbuf.st_mode)) {
/* We determine whether this is a main or
debug ELF based on path. */
#define DEBUGPATH "/usr/lib/debug/"
int isDbg = strncmp (flp->cpioPath,
DEBUGPATH, strlen (DEBUGPATH)) == 0;

/* For the main package files mimic what find-debuginfo.sh does.
Only check build-ids for executable files. Debug files are
always non-executable. */
if (!isDbg
&& (sbuf.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) == 0)
continue;

int fd = open (flp->diskPath, O_RDONLY);
if (fd >= 0) {
/* Only real ELF files, that are ET_EXEC, ET_DYN or
Expand All @@ -1732,12 +1745,8 @@ static int generateBuildIDs(FileList fl)
is 128 bits) and 64 bytes (largest sha3 is 512
bits), common is 20 bytes (sha1 is 160 bits). */
if (len >= 16 && len <= 64) {
/* We determine whether this is a main or
debug ELF based on path. */
#define DEBUGPATH "/usr/lib/debug/"
int addid = 0;
if (strncmp (flp->cpioPath,
DEBUGPATH, strlen (DEBUGPATH)) == 0) {
if (isDbg) {
needDbg = 1;
addid = 1;
}
Expand Down

0 comments on commit c9035d4

Please sign in to comment.