Hello *,
while preparing Core Update 163, these messages are emitted at the end of a build on my workstation:
Error! '/aarch64' in rootfiles files found! ./config/rootfiles/common/liburcu:#usr/include/urcu/arch/aarch64.h ./config/rootfiles/common/liburcu:#usr/include/urcu/uatomic/aarch64.h ./config/rootfiles/common/gdb:#usr/share/gdb/syscalls/aarch64-linux.xml Replace by xxxMACHINExxx !
While I get the intention of a check like this, these appear to be safe to ignore. However, I'd like to have someone more experienced on this to confirm that opinion.
Thanks, and best regards, Peter Müller
Hi Peter,
Sorry, I had intended to send out a message about this when I submitted the patches for this but it slipped my mind till I saw your email.
On 05/12/2021 11:47, Peter Müller wrote:
Hello *,
while preparing Core Update 163, these messages are emitted at the end of a build on my workstation:
Error! '/aarch64' in rootfiles files found! ./config/rootfiles/common/liburcu:#usr/include/urcu/arch/aarch64.h ./config/rootfiles/common/liburcu:#usr/include/urcu/uatomic/aarch64.h ./config/rootfiles/common/gdb:#usr/share/gdb/syscalls/aarch64-linux.xml Replace by xxxMACHINExxx !
While I get the intention of a check like this, these appear to be safe to ignore. However, I'd like to have someone more experienced on this to confirm that opinion.
I don't consider myself more experienced on this but I did have a look through the rootfile ff liburcu when I saw this message when I did the build.
There are a series of header files for each of the architectures. The 32 bit arm one is called arm.h, the 64 bit x86 is called x86.h. The one for the 64 bit arm architecture is called aarch64.h so this is the one that happens to use a filename the same as the names IPFire uses for architectures.
Replacing the name with xxxMACHINExxx would end up creating file names such as x86_64.h which would not work in the build because these names are not the result of the build but are the actual source files.
How should we deal with the situation where a source file filename happens to use an architecture name the same as an IPFire name.
Regards,
Adolf.
Thanks, and best regards, Peter Müller
Hello Adolf,
thanks for your reply.
How should we deal with the situation where a source file filename happens to use an architecture name the same as an IPFire name.
I also think this is a false positive, though it surprises me we never came across this scenario all the years before. Either way, make.sh (or whatever's doing this check) needs to be updated to ignore such cases.
I'll file a bug for this later...
Thanks, and best regards, Peter Müller
P.S.: Bug #12743 (https://bugzilla.ipfire.org/show_bug.cgi?id=12743) has been raised for this.
Should anybody have spare time to work on it, please feel free to do so. :-)
Hello Adolf,
thanks for your reply.
How should we deal with the situation where a source file filename happens to use an architecture name the same as an IPFire name.
I also think this is a false positive, though it surprises me we never came across this scenario all the years before. Either way, make.sh (or whatever's doing this check) needs to be updated to ignore such cases.
I'll file a bug for this later...
Thanks, and best regards, Peter Müller
Hello,
What is the bug for? The check does exactly what it is supposed to do.
We either need to get rid of it entirely because it has false positives or we need to have a whitelist.
Is that a solution that you had in mind?
-Michael
On 9 Dec 2021, at 19:39, Peter Müller peter.mueller@ipfire.org wrote:
P.S.: Bug #12743 (https://bugzilla.ipfire.org/show_bug.cgi?id=12743) has been raised for this.
Should anybody have spare time to work on it, please feel free to do so. :-)
Hello Adolf,
thanks for your reply.
How should we deal with the situation where a source file filename happens to use an architecture name the same as an IPFire name.
I also think this is a false positive, though it surprises me we never came across this scenario all the years before. Either way, make.sh (or whatever's doing this check) needs to be updated to ignore such cases.
I'll file a bug for this later...
Thanks, and best regards, Peter Müller
Hello Michael,
thanks for your reply.
As far as I understood the issue, make.sh checking for architecture names in paths is fine, but in filenames (such as x86_64.h), it is not. A whitelist approach would not be necessary in this case, it only needs to ignore the file name of a given path while checking for architecture names.
Does this make sense? Or did I misunderstood you?
Thanks, and best regards, Peter Müller
Hello,
What is the bug for? The check does exactly what it is supposed to do.
We either need to get rid of it entirely because it has false positives or we need to have a whitelist.
Is that a solution that you had in mind?
-Michael
On 9 Dec 2021, at 19:39, Peter Müller peter.mueller@ipfire.org wrote:
P.S.: Bug #12743 (https://bugzilla.ipfire.org/show_bug.cgi?id=12743) has been raised for this.
Should anybody have spare time to work on it, please feel free to do so. :-)
Hello Adolf,
thanks for your reply.
How should we deal with the situation where a source file filename happens to use an architecture name the same as an IPFire name.
I also think this is a false positive, though it surprises me we never came across this scenario all the years before. Either way, make.sh (or whatever's doing this check) needs to be updated to ignore such cases.
I'll file a bug for this later...
Thanks, and best regards, Peter Müller
Hello,
On 9 Dec 2021, at 19:52, Peter Müller peter.mueller@ipfire.org wrote:
Hello Michael,
thanks for your reply.
As far as I understood the issue, make.sh checking for architecture names in paths is fine, but in filenames (such as x86_64.h), it is not. A whitelist approach would not be necessary in this case, it only needs to ignore the file name of a given path while checking for architecture names.
In this case it is, but generally it isn’t.
The check was built for Perl and Python modules that carry the architecture name in their paths. For Perl that is usually a directory and Python has it in the filename.
The idea is to catch any build problems if someone builds it on one architecture and doesn’t notice.
I never notice.
I do not think there is a technical solution to this.
-Michael
Does this make sense? Or did I misunderstood you?
Thanks, and best regards, Peter Müller
Hello,
What is the bug for? The check does exactly what it is supposed to do.
We either need to get rid of it entirely because it has false positives or we need to have a whitelist.
Is that a solution that you had in mind?
-Michael
On 9 Dec 2021, at 19:39, Peter Müller peter.mueller@ipfire.org wrote:
P.S.: Bug #12743 (https://bugzilla.ipfire.org/show_bug.cgi?id=12743) has been raised for this.
Should anybody have spare time to work on it, please feel free to do so. :-)
Hello Adolf,
thanks for your reply.
How should we deal with the situation where a source file filename happens to use an architecture name the same as an IPFire name.
I also think this is a false positive, though it surprises me we never came across this scenario all the years before. Either way, make.sh (or whatever's doing this check) needs to be updated to ignore such cases.
I'll file a bug for this later...
Thanks, and best regards, Peter Müller
Hi Michael and Peter,
On 09/12/2021 20:54, Michael Tremer wrote:
Hello,
On 9 Dec 2021, at 19:52, Peter Müller peter.mueller@ipfire.org wrote:
Hello Michael,
thanks for your reply.
As far as I understood the issue, make.sh checking for architecture names in paths is fine, but in filenames (such as x86_64.h), it is not. A whitelist approach would not be necessary in this case, it only needs to ignore the file name of a given path while checking for architecture names.
In this case it is, but generally it isn’t.
The check was built for Perl and Python modules that carry the architecture name in their paths. For Perl that is usually a directory and Python has it in the filename.
The idea is to catch any build problems if someone builds it on one architecture and doesn’t notice.
I never notice.
I do not think there is a technical solution to this.
As this is the first time that we have had a filename that ends up using exactly one of the IPFire architecture names I would have thought it should be possible to tell make.sh to ignore that very specific file path/name.
The chances of more filenames occurring like this looks to me to be quite small based on history but if it happens again then a whitelist approach could be created.
I would be willing to look at this.
Regards,
Adolf.
-Michael
Does this make sense? Or did I misunderstood you?
Thanks, and best regards, Peter Müller
Hello,
What is the bug for? The check does exactly what it is supposed to do.
We either need to get rid of it entirely because it has false positives or we need to have a whitelist.
Is that a solution that you had in mind?
-Michael
On 9 Dec 2021, at 19:39, Peter Müller peter.mueller@ipfire.org wrote:
P.S.: Bug #12743 (https://bugzilla.ipfire.org/show_bug.cgi?id=12743) has been raised for this.
Should anybody have spare time to work on it, please feel free to do so. :-)
Hello Adolf,
thanks for your reply.
How should we deal with the situation where a source file filename happens to use an architecture name the same as an IPFire name.
I also think this is a false positive, though it surprises me we never came across this scenario all the years before. Either way, make.sh (or whatever's doing this check) needs to be updated to ignore such cases.
I'll file a bug for this later...
Thanks, and best regards, Peter Müller