Hello Mingli. Yu, Mingli wrote in <ecd69602-f1bf-6dca-9e89-34ffc2d67...@windriver.com>: |On 6/8/22 12:18 AM, Steffen Nurpmeso wrote: |> mingli...@windriver.com wrote in |> <20220607031904.3873492-1-mingli...@windriver.com>: |>|| 6_64-wrs-linux/12.1.0/ld: mx-047.o: in function `a_nm_alias_expand': |>|| /usr/src/debug/s-nail/14.9.24-r0/s-nail-14.9.24/src/mx/names.c:308: \ |>|| undefined reference to `su_cs_dict_lookup' |> ... |>|| 36: undefined reference to `su_mem_get_can_book' |>| collect2: error: ld returned 1 exit status ... |> I can compile 14.9.24 with gcc 12.1.0 here. |> Which were your $CFLAGS, you came there with OPT_AUTOCC=no, did |> you? INLINE comes from include/su/code.h. Why only these two, | |Yes, OPT_AUTOCC=no in my env. And CFLAGS is "-Og -g |-feliminate-unused-debug-types" and it turns out only two have problems |though there are too many "INLINE" functions and I'm also confused.
I see. That is i do not, i did not even know about -Og! Interesting; by sheer luck i do not even have a debugger installed \o/ Please call through if any issues are encountered, i hate bugs! |> I once have seen something similar, and that was under AlpineLinux |> with -Os optimization flag, a bug in gcc 8.3.0, contradicting |> documentation, (not all) inline functions became inlined. |> I suspect we see this here again? ... |> So. To work around this suspected gcc bug you could either pass |> -std=c89 (in $CFLAGS, or in $EXTRA_CFLAGS if you use | |And it works after pass -std=c89 to CFLAGS. That is good news! ... |> diff --git a/include/su/code.h b/include/su/code.h ... |The above patch also works. Wonderful! Thanks for reporting the issue, i will change code.h to simply always use the gcc-specific way of inlining functions! Yes, ever since i code in C++/C i am at odds with compilers now and then; especially if you cannot reproduce it but in the very compilation unit context; then you go "where is that large automobile?", so to say. (For example in include/su/cs-dict.h, class gview, "clang 5.0.1 BUG: needed this-> to find superclass field". Why only there? I also changed all C++ ": struct NAME" to ": NAME", i think it was gcc who did not let me use "struct" once, and it is optional anyway in C++. By why only once? You know...) |Thanks, |Mingli Prima! Keep on flowing. ... I now see that there is a S-nail recipe for OpenEmbedded! That is cool, i did not know (not covered by repology). Looking in [1] i am wondering why your [2] was not simply solved by passing VAL_MTA=/usr/sbin/sendmail in [1], too? And: can i keep your email for (hopefully never needed) emergency maintainer contact? [1] https://cgit.openembedded.org/meta-openembedded/plain/meta-oe/recipes-extended/s-nail/s-nail_14.9.24.bb [2] https://cgit.openembedded.org/meta-openembedded/plain/meta-oe/recipes-extended/s-nail/files/0001-make.rc-set-VAL_MTA.patch Ciao, Mingli! --steffen | |Der Kragenbaer, The moon bear, |der holt sich munter he cheerfully and one by one |einen nach dem anderen runter wa.ks himself off |(By Robert Gernhardt)