Thread (11 messages) 11 messages, 4 authors, 2021-02-13

Re: [PATCH] include/buildrules: substitute ".o" for ".lo" only at the very end

From: Eric Sandeen <hidden>
Date: 2021-02-12 22:15:53

On 2/12/21 3:55 PM, Markus Mayer wrote:
On Fri, 12 Feb 2021 at 13:29, Eric Sandeen [off-list ref] wrote:
quoted
On 2/12/21 2:51 PM, Markus Mayer wrote:
quoted
quoted
To prevent issues when the ".o" extension appears in a directory path,
ensure that the ".o" -> ".lo" substitution is only performed for the
final file extension.
If the subject should be "[PATCH] xfsprogs: ...", please let me know.
Nah, that's fine, I noticed it.

So did you have a path component that had ".o" in it that got substituted?
Is that what the bugfix is?
Yes and yes.

Specifically, I was asked to name the build directory in our build
system "workspace.o" (or something else ending in .o) because that
causes the automated backup to skip backing up temporary build
directories, which is what we want. There is an existing exclusion
pattern that skips .o files during backup runs, and they didn't want
to create specialized rules for different projects. Hence the request
for the oddly named directory to make it match the existing pattern.

We also have a symlink without the ".o" extension (workspace ->
workspace.o) which is commonly used to access the work space, but
symlinks  frequently get expanded when scripts run. In the end, the
xfsprogs build system saw the full path without the symlink
(".../workspace.o/.../xfsprogs-5.8.0/...") and started substituting
workspace.o with workspace.lo. And then the build died.
haha, no comment on the strategy ;)

But I agree that we should not be substituting anything but the root filename
suffix, so the patch is fine by me.

-Eric
Like this:
quoted
quoted
quoted
xfsprogs 5.8.0 Building
PATH="/local/users/jenkins/workspace.o/buildroot_linux-5.4_llvm/output/arm64/host/bin:/local/users/jenkins/workspace.o/buildroot_linux-5.4_llvm/output/arm64/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"
 /usr/bin/make -j33  -C
/local/users/jenkins/workspace.o/buildroot_linux-5.4_llvm/output/arm64/build/xfsprogs-5.8.0/
   [HEADERS] include
   [HEADERS] libxfs
Building include
    [LN]     disk
make[3]: Nothing to be done for 'include'.
Building libfrog
    [CC]     gen_crc32table
    [GENERATE] crc32table.h
make[4]: *** No rule to make target
'/local/users/jenkins/workspace.lo/buildroot_linux-5.4_llvm/output/arm64/target/usr/include/uuid/uuid.h',
needed by 'bitmap.lo'.  Stop.
make[4]: *** Waiting for unfinished jobs....
    [CC]     avl64.lo
include/buildrules:35: recipe for target 'libfrog' failed
make[3]: *** [libfrog] Error 2
Makefile:91: recipe for target 'default' failed
make[2]: *** [default] Error 2
package/pkg-generic.mk:247: recipe for target
'/local/users/jenkins/workspace.o/buildroot_linux-5.4_llvm/output/arm64/build/xfsprogs-5.8.0/.stamp_built'
failed
make[1]: *** [/local/users/jenkins/workspace.o/buildroot_linux-5.4_llvm/output/arm64/build/xfsprogs-5.8.0/.stamp_built]
Error 2

Regards,
-Markus
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help