[pve-devel] [PATCH v2 common 01/11] Make get_host_arch return raw uname entry
Thomas Lamprecht
t.lamprecht at proxmox.com
Tue Oct 29 07:10:06 CET 2019
On 10/28/19 12:59 PM, Stefan Reiter wrote:
> The current version had only one user in LXC, so move the LXC-specific
> code there to reuse this in QemuServer.
>
> Also cache, since the host's architecture can't change during runtime.
>
> Signed-off-by: Stefan Reiter <s.reiter at proxmox.com>
> ---
> src/PVE/Tools.pm | 17 +++++------------
> 1 file changed, 5 insertions(+), 12 deletions(-)
>
> diff --git a/src/PVE/Tools.pm b/src/PVE/Tools.pm
> index 550da09..c9d37ec 100644
> --- a/src/PVE/Tools.pm
> +++ b/src/PVE/Tools.pm
> @@ -47,6 +47,7 @@ safe_print
> trim
> extract_param
> file_copy
> +get_host_arch
> O_PATH
> O_TMPFILE
> );
> @@ -1630,18 +1631,10 @@ sub readline_nointr {
> return $line;
> }
>
> -sub get_host_arch {
> -
> - my @uname = POSIX::uname();
> - my $machine = $uname[4];
> -
> - if ($machine eq 'x86_64') {
> - return 'amd64';
> - } elsif ($machine eq 'aarch64') {
> - return 'arm64';
> - } else {
> - die "unsupported host architecture '$machine'\n";
> - }
> +my $host_arch;
> +sub get_host_arch() {
was the perl prototype wanted or was it by mistake? ^^
For you and/or others information, empty prototypes suggest perl to
inline that method, as it's seen as constant method[0].
But here, the explicit return renders that behavior void.
Point is, perl prototypes are confusing for most people, and are mostly
useful to use a submethod like an built-in method..
[0]: https://perldoc.perl.org/perlsub.html#Constant-Functions
> + $host_arch = (POSIX::uname())[4] if !$host_arch;
> + return $host_arch;
> }
>
> # Devices are: [ (12 bits minor) (12 bits major) (8 bits minor) ]
>
More information about the pve-devel
mailing list