[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Minios-devel] [UNIKRAFT/PYTHON3 PATCH v3 10/14] Add init.c for initialization



Hi Vlad, Costin, this patch looks good.

Reviewed-by: Felipe Huici <felipe.huici@xxxxxxxxx>

On 23.09.19, 11:59, "Costin Lupu" <costin.lupu@xxxxxxxxx> wrote:

    From: Vlad-Andrei Badoiu <vlad_andrei.badoiu@xxxxxxxxxxxxxxx>
    
    This patch sets the environment variables that are needed during runtime for
    the intepreter.
    
    Signed-off-by: Vlad-Andrei Badoiu <vlad_andrei.badoiu@xxxxxxxxxxxxxxx>
    Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx>
    ---
     Config.uk   | 13 +++++++++++++
     Makefile.uk |  1 +
     init.c      | 46 ++++++++++++++++++++++++++++++++++++++++++++++
     3 files changed, 60 insertions(+)
     create mode 100644 init.c
    
    diff --git a/Config.uk b/Config.uk
    index f801a0c..3da3ffb 100644
    --- a/Config.uk
    +++ b/Config.uk
    @@ -18,4 +18,17 @@ menuconfig LIBPYTHON3
        select LWIP_IPV6
     
     if LIBPYTHON3
    +
    +config LIBPYTHON3_PYTHONHOME
    +   string "Python home directory"
    +   default "/lib/python3.7"
    +
    +config LIBPYTHON3_PYTHONPATH
    +   string "Python path"
    +   default "/lib/python3.7"
    +
    +config LIBPYTHON3_TMPDIR
    +   string "Temp directory location"
    +   default "/tmp"
    +
     endif
    diff --git a/Makefile.uk b/Makefile.uk
    index 4d67f6c..dc6e4ad 100644
    --- a/Makefile.uk
    +++ b/Makefile.uk
    @@ -97,6 +97,7 @@ LIBPYTHON3_COMMON_CXXFLAGS-y += 
$(LIBPYTHON3_COMMON_DEFINES-y)
     LIBPYTHON3_CINCLUDES-y   += $(LIBPYTHON3_COMMON_INCLUDES-y)
     LIBPYTHON3_CXXINCLUDES-y += $(LIBPYTHON3_COMMON_INCLUDES-y)
     
    +LIBPYTHON3_SRCS-y += $(LIBPYTHON3_BASE)/init.c|unikraft
     LIBPYTHON3_SRCS-y += $(LIBPYTHON3_BASE)/modules_config.c|unikraft
     LIBPYTHON3_SRCS-y += $(LIBPYTHON3_BASE)/stubs.c|unikraft
     
    diff --git a/init.c b/init.c
    new file mode 100644
    index 0000000..bc06279
    --- /dev/null
    +++ b/init.c
    @@ -0,0 +1,46 @@
    +/* SPDX-License-Identifier: BSD-3-Clause */
    +/*
    + * Authors: Badoiu Vlad-Andrei <vlad_andrei.badoiu@xxxxxxxxxxxxxxx>
    + *
    + * Copyright (c) 2019, University Politehnica of Bucharest. All rights 
reserved.
    + *
    + * Redistribution and use in source and binary forms, with or without
    + * modification, are permitted provided that the following conditions
    + * are met:
    + *
    + * 1. Redistributions of source code must retain the above copyright
    + *    notice, this list of conditions and the following disclaimer.
    + * 2. Redistributions in binary form must reproduce the above copyright
    + *    notice, this list of conditions and the following disclaimer in the
    + *    documentation and/or other materials provided with the distribution.
    + * 3. Neither the name of the copyright holder nor the names of its
    + *    contributors may be used to endorse or promote products derived from
    + *    this software without specific prior written permission.
    + *
    + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS 
IS"
    + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
THE
    + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
PURPOSE
    + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS 
BE
    + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
    + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
    + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
    + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
    + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
    + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 
THE
    + * POSSIBILITY OF SUCH DAMAGE.
    + *
    + * THIS HEADER MAY NOT BE EXTRACTED OR MODIFIED IN ANY WAY.
    + */
    +
    +#include <uk/config.h>
    +#include <uk/essentials.h>
    +#include <stdlib.h>
    +
    +void __constructor python_init(void)
    +{
    +   setenv("PYTHONHOME", CONFIG_LIBPYTHON3_PYTHONHOME, 0);
    +   setenv("PYTHONPATH", CONFIG_LIBPYTHON3_PYTHONPATH, 0);
    +   setenv("PYTHONUSERBASE", "site-packages", 0);
    +   setenv("TMPDIR", CONFIG_LIBPYTHON3_TMPDIR, 0);
    +   setenv("_PYTHON_SYSCONFIGDATA_NAME", "_sysconfigdata", 0);
    +}
    -- 
    2.20.1
    
    

_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.