Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compilation fails with Python3 and sqlite #2

Open
gabriele-scivoletto opened this issue Sep 14, 2021 · 0 comments
Open

Compilation fails with Python3 and sqlite #2

gabriele-scivoletto opened this issue Sep 14, 2021 · 0 comments

Comments

@gabriele-scivoletto
Copy link

Describe the bug

Cannot compile the unikernel when i enable the sqlite python3 extension

Steps to reproduce

$ mkdir temp
$ cd temp
$ mkdir uk_workdir
$ export UK_WORKDIR=$(pwd)/uk_workdir
$ nano kraft.yaml 
---
specification: '0.5'
name: bug-sqlite
unikraft:
  version: staging
  kconfig:
    - CONFIG_LIBUK9P=y
    - CONFIG_LIB9PFS=y
    - CONFIG_LIBDEVFS=y
    - CONFIG_LIBDEVFS_AUTOMOUNT=y
    - CONFIG_LIBVFSCORE_AUTOMOUNT_ROOTFS=y
    - CONFIG_LIBVFSCORE_ROOTFS_9PFS=y
    - CONFIG_LIBUKLIBPARAM=y
    - CONFIG_LIBVFSCORE_ROOTDEV="fs0"
targets:
  - architecture: x86_64
    platform: kvm
libraries:
  pthread-embedded:
    version: staging
  lwip:
    version: staging
  zlib:
    version: staging
  libuuid:
    version: staging
  newlib:
    version: staging
  sqlite:
    version: staging
    kconfig:
      - CONFIG_LIBSQLITE_MAIN_FUNCTION=n
  python3:
    version: staging
    kconfig:
      - CONFIG_LIBPYTHON3=y
      - CONFIG_LIBPYTHON3_EXTENSIONS=y
      - CONFIG_LIBPYTHON3_EXTENSION_EXPAT=y
      - CONFIG_LIBPYTHON3_EXTENSION_LIBMPDEC=y
      - CONFIG_LIBPYTHON3_EXTENSION_UUID=y
      - CONFIG_LIBPYTHON3_EXTENSION_ZLIB=y
      - CONFIG_LIBPYTHON3_MAIN_FUNCTION=y
volumes:
  fs0:
    driver: 9pfs
    source: ./minrootfs.tgz
$ kraft list pull
$ kraft configure -F
$ kraft build 

Which architectures were you using or does this bug affect?
x86_64

Which platforms were you using or does this bug affect?
kvm

Relevant log output

`CC      libnewlibglue: crypt_r.o
CC      libnewlibglue: crypt_sha256.o
CC      libnewlibglue: crypt_sha512.o
CC      libnewlibglue: encrypt.o
LD      libnewlibglue.ld.o
OBJCOPY libnewlibglue.o
CC      libsqlite: shell.o
CC      libsqlite: sqlite3.o
LD      libsqlite.ld.o
OBJCOPY libsqlite.o 
CC      libpython3: init.unikraft.o
CC      libpython3: modules_config.unikraft.o
/home/ubuntu/temp/uk-event-manager/uk_workdir/libs/python3/modules_config.c:293:16: error: ‘PyInit__sqlite3’ undeclared here (not in a function); did you mean ‘PyInit__tkinter’?
  293 |     {"sqlite", PyInit__sqlite3},
      |                ^~~~~~~~~~~~~~~
      |                PyInit__tkinter
/home/ubuntu/temp/uk-event-manager/uk_workdir/libs/python3/modules_config.c:293:5: warning: missing initializer for field ‘initfunc’ of ‘struct _inittab’ [-Wmissing-field-initializers]
  293 |     {"sqlite", PyInit__sqlite3},
      |     ^
In file included from /home/ubuntu/temp/uk-event-manager/build/libpython3/origin/Python-3.7.4/Include/Python.h:145,
                 from /home/ubuntu/temp/uk-event-manager/uk_workdir/libs/python3/include/Python.h:39,
                 from /home/ubuntu/temp/uk-event-manager/uk_workdir/libs/python3/modules_config.c:20:
/home/ubuntu/temp/uk-event-manager/build/libpython3/origin/Python-3.7.4/Include/import.h:122:17: note: ‘initfunc’ declared here
  122 |     PyObject* (*initfunc)(void);
      |                 ^~~~~~~~
make[1]: *** [/home/ubuntu/temp/uk-event-manager/uk_workdir/unikraft/support/build/Makefile.build:27: /home/ubuntu/temp/uk-event-manager/build/libpython3/modules_config.unikraft.o] Error 1
make: *** [Makefile:1008: sub-make] Error 2`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant