Date: Wed, 30 Jun 2021 16:53:50 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 256909] libucl upgrade in a0409676120c1e558d0ade943019934e0f15118d breaks ABI Message-ID: <bug-256909-227@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D256909 Bug ID: 256909 Summary: libucl upgrade in a0409676120c1e558d0ade943019934e0f15118d breaks ABI Product: Base System Version: 12.2-STABLE Hardware: Any OS: Any Status: New Severity: Affects Some People Priority: --- Component: bin Assignee: bugs@FreeBSD.org Reporter: michael.osipov@siemens.com * I have installed a new FreeBSD host from 12.2-RELEASE image * Installed gitup(1): # fetch -o gitup.zip https://codeload.github.com/johnmehr/gitup/zip/main # unzip gitup.zip # cd gitup-main # mkdir -p /usr/local/etc /usr/local/sbin /usr/local/man/man1 /usr/local/man/man5 # make # make MK_DEBUG_FILES=3Dno DESTDIR=3D/usr/local BINDIR=3D/sbin MANDIR=3D/ma= n/man install # cd .. # rm -rf gitup* gitup makes use of ucl_iterate_object(). gitup works, it is now used to fetch a shallow copy of stable/12 to update = base from release to stable. After stable has been applied and the system has be= en rebooted gitup fails with undefined symbol "ucl_iterate_object". One needs = to recompile gitup to make it work again with stable/12. The reason is commit a0409676120c1e558d0ade943019934e0f15118d (libucl: vend= or import snapshort 20210314). In this specific commit the following has been performed: ... > -UCL_EXTERN const ucl_object_t* ucl_object_iterate (const ucl_object_t *o= bj, > - ucl_object_iter_t *iter, bool expand_values); > +UCL_EXTERN const ucl_object_t* ucl_object_iterate_with_error (const ucl_= object_t *obj, > + ucl_object_iter_t *iter, bool expand_values, int *ep); > + > #define ucl_iterate_object ucl_object_iterate > +#define ucl_object_iterate(ob, it, ev) ucl_object_iterate_with_error((ob= ), (it), (ev), NULL) ... > -ucl_object_iterate (const ucl_object_t *obj, ucl_object_iter_t *iter, bo= ol expand_values) > +ucl_object_iterate_with_error (const ucl_object_t *obj, ucl_object_iter_= t *iter, bool expand_values, > + int *ep) The dynamic symbol table has been modified and the symbol ucl_object_iterat= e is gone after base has been updated. This is a breaking change for me which I don't expect. While I can recompile gitup, no issue, others will have probl= ems with other ports which may rely on this symbol to exist. This also means th= at one cannot build this port in 12.2-RELEASE jail and use it in a 12-STABLE system. The vendor change must be modified that no macro is used, but the old symbo= l is retained and the replaced function simply calls the new one. --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-256909-227>