[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT/PYTHON3 PATCH v2 09/13] Add init.c for initialization
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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |