1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-23 04:23:08 +00:00

irc/bitchx: fix non-static inline functions

During an exp-run for llvm 13 (see bug 258209), it turned out that both
chinese/bitchx and irc/bitchx fail to build with clang 13 [1]:

...
cc -fstack-protector-strong  -L/usr/lib -o BitchX alias.o alist.o  array.o art.o banlist.o bot_link.o cdcc.o cdns.o  chelp.o commands.o commands2.o compat.o cset.o ctcp.o dcc.o debug.o encrypt.o exec.o files.o flood.o fset.o functions.o funny.o glob.o hash.o hebrew.o help.o history.o hook.o if.o ignore.o input.o irc.o ircaux.o ircsig.o keys.o lastlog.o list.o log.o mail.o misc.o modules.o names.o network.o newio.o notice.o notify.o numbers.o output.o parse.o queue.o readlog.o reg.o screen.o server.o stack.o status.o struct.o tcl_public.o term.o timer.o translat.o user.o userlist.o vars.o who.o whowas.o window.o words.o   -ldl -ltinfo -lssl -lcrypto -lm -lcrypt
ld: error: undefined symbol: operator
>>> referenced by alias.c
>>>               alias.o:(zzlex)
cc: error: linker command failed with exit code 1 (use -v to see invocation)

This is because several functions in source/expr2.c are marked __inline,
without either static or extern keyword. The compiler then has to assume
the function is also externally available.

Fix this by marking the affected functions static.

PR:		258464
Approved by:	fernape (maintainer)
MFH:		2021Q4
This commit is contained in:
Dimitry Andric 2021-09-12 22:13:36 +02:00
parent a1edd535d3
commit 7075120b4d

View File

@ -0,0 +1,29 @@
--- source/expr2.c.orig 2008-02-25 09:49:14 UTC
+++ source/expr2.c
@@ -1192,7 +1192,7 @@ int lexerr (expr_info *c, char *format, ...)
* case 'operand' is set to 1. When an operand is lexed, then the next token
* is expected to be a binary operator, so 'operand' is set to 0.
*/
-__inline int check_implied_arg (expr_info *c)
+__inline static int check_implied_arg (expr_info *c)
{
if (c->operand == 2)
{
@@ -1205,7 +1205,7 @@ __inline int check_implied_arg (expr_info *c)
return c->operand;
}
-__inline TOKEN operator (expr_info *c, char *x, int y, TOKEN z)
+__inline static TOKEN operator (expr_info *c, char *x, int y, TOKEN z)
{
check_implied_arg(c);
if (c->operand)
@@ -1216,7 +1216,7 @@ __inline TOKEN operator (expr_info *c, char *x, int y
return z;
}
-__inline TOKEN unary (expr_info *c, char *x, int y, TOKEN z)
+__inline static TOKEN unary (expr_info *c, char *x, int y, TOKEN z)
{
if (!c->operand)
return lexerr(c, "An operator (%s) was found where "