Opened 4 years ago

Closed 3 years ago

Last modified 3 years ago

#61216 closed defect (fixed)

Virtuoso-7 fail to install on OS 10.15 with XCode 12.0

Reported by: JacquesLB Owned by: nerdling (Jeremy Lavergne)
Priority: Normal Milestone:
Component: ports Version: 2.6.3
Keywords: xcode12 Cc: chrstphrchvz (Christopher Chavez), astrofitz (Michael Fitzgerald), DaveStrickland (Dave Strickland)
Port: virtuoso-7

Description

virtuoso-7 is required by tellico.

Installation on a brand new MacBook Pro, with all Apple updates installed (Version 10.15.6, XCode 12.0) fails during compilation. Huge number of errors in the log file (see below). MacPort 2.6.3

This is way above by expertise to analyse.

Attachments (1)

main.log (173.7 KB) - added by JacquesLB 4 years ago.
/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_virtuoso-7/virtuoso-7/main.log

Download all attachments as: .zip

Change History (30)

Changed 4 years ago by JacquesLB

Attachment: main.log added

/opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_virtuoso-7/virtuoso-7/main.log

comment:1 Changed 4 years ago by chrstphrchvz (Christopher Chavez)

I can reproduce the error:

 /usr/bin/clang -DHAVE_CONFIG_H -I. -I../../libsrc/Dk -I/opt/local/include/openssl-1.0 -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -fno-strict-aliasing -O2 -Wall -DNDEBUG -DPOINTER_64 -I/opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_macports_macports-ports_devel_virtuoso-7/virtuoso-7/work/virtuoso-opensource-7.2.5/libsrc/Xml.new -DOPENSSL_NO_KRB5 -I../../libsrc -I../../libsrc/Dk -I../../libsrc/zlib -I. -I../../libsrc/langfunc -I../../libsrc/plugin -I../../libsrc/Tidy -I../../libsrc/Xml.new -I../../libsrc/odbcsdk/include -DVAD -DDBP -DBIF_XPER -DOPSYS=\"Darwin\" -DHOST=\"x86_64-apple-darwin19.6.0\" -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -arch x86_64 -MT libwi_la-numeric.lo -MD -MP -MF .deps/libwi_la-numeric.Tpo -c numeric.c  -fno-common -DPIC -o .libs/libwi_la-numeric.o
numeric.c:1527:12: error: implicit declaration of function 'stricmp' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
      if (!stricmp (cp, "INF") || !stricmp (cp, "Infinity"))
           ^
numeric.c:1680:29: error: implicit declaration of function 'stricmp' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
  if (!isdigit (cp[0]) && (!stricmp (cp, "INF") || !stricmp (cp, "Infinity") || !stricmp (cp, "NaN")))
                            ^
2 errors generated.

My guess is that it is waiting until linking to use the stricmp() implementation from libsrc/util/stricmp.c, and isn't providing a header file to declare it.

comment:2 Changed 4 years ago by chrstphrchvz (Christopher Chavez)

Cc: chrstphrchvz added

comment:3 Changed 4 years ago by mf2k (Frank Schima)

In the future, please add the port maintainer(s) to Cc (port info --maintainers virtuoso-7), if any.

comment:4 Changed 4 years ago by mf2k (Frank Schima)

Owner: set to nerdling
Status: newassigned

comment:5 in reply to:  3 Changed 4 years ago by JacquesLB

Replying to mf2k:

In the future, please add the port maintainer(s) to Cc (port info --maintainers virtuoso-7), if any.

OK. Sorry.

J.

comment:6 Changed 4 years ago by nerdling (Jeremy Lavergne)

This might be a parallelism issue: you've got -j16 but it builds for me with -j4.

I'm trying to build without trace mode this time, too.

comment:7 Changed 4 years ago by nerdling (Jeremy Lavergne)

Looks like the issue exists only without trace mode.

Can you try building with port -t to see if it's a workaround for whatever weirdness is being pulled in?

comment:8 Changed 4 years ago by JacquesLB

I just tried that. Here is the output. Short answer: same.

(base) ~ $ sudo port clean virtuoso-7
Password:
--->  Cleaning virtuoso-7
(base) ~ $ sudo port -t install  virtuoso-7
--->  Computing dependencies for virtuoso-7
--->  Fetching archive for virtuoso-7
--->  Attempting to fetch virtuoso-7-7.2.5_1.darwin_19.x86_64.tbz2 from https://packages.macports.org/virtuoso-7
--->  Attempting to fetch virtuoso-7-7.2.5_1.darwin_19.x86_64.tbz2 from https://lil.fr.packages.macports.org/virtuoso-7
--->  Attempting to fetch virtuoso-7-7.2.5_1.darwin_19.x86_64.tbz2 from https://mse.uk.packages.macports.org/virtuoso-7
--->  Fetching distfiles for virtuoso-7
--->  Verifying checksums for virtuoso-7
--->  Extracting virtuoso-7
Warning: The following existing file was hidden from the build system by trace mode:
  /private/var/select/sh
--->  Configuring virtuoso-7
Some antivirus software can cause the virtuoso build to hang indefinitely. If you have any antivirus software installed, please disable it while building virtuoso; it can be re-enabled after virtuoso has been installed.
Warning: The following existing files were hidden from the build system by trace mode:
  /opt/local/bin/ar
  /opt/local/bin/bison
  /opt/local/bin/gcc-mp-10
  /opt/local/bin/gm4
  /opt/local/bin/lipo
  /opt/local/bin/nm
  /opt/local/bin/nmedit
  /opt/local/bin/otool
  /opt/local/bin/ranlib
  /opt/local/bin/strip
  /private/var/select/sh
Warning: The following file inside the MacPorts prefix not installed by a port was accessed:
  /opt/local/bin/gcc
--->  Building virtuoso-7
Warning: The following existing files were hidden from the build system by trace mode:
  /opt/local/bin/ar
  /opt/local/bin/ranlib
  /private/var/select/sh
Error: Failed to build virtuoso-7: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_virtuoso-7/virtuoso-7/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port virtuoso-7 failed
(base) ~ $ 

Note: I am using bash 4.4 from MacPort as my shell (and not Apple new zsh). This is done thru "terminal" preferences: /opt/local/bin/bash -l However, I just notice that /private/var/select/sh is a symlink to /bin/bash Is there something behind?

Thank you for the efforts.

Jacques

Last edited 3 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:9 Changed 4 years ago by JacquesLB

No news?

I just tried again (after a port upgrade outdated). Same problems.

J.

comment:10 Changed 4 years ago by nerdling (Jeremy Lavergne)

Right now, all I have is it builds for me with trace mode enabled. There is a build error without trace mode, and I'll need time to dig in and see what's being pulled in opportunistically—and make it stop.

comment:11 Changed 4 years ago by sharris40 (Spencer Harris)

-Werror,-Wimplicit-function-declaration is a new default in Clang for Xcode 12. To fix it, you could just add the function prototype to an appropriate place via a patch. You could also just turn off the error, but then you'd be covering up the real problem.

comment:12 Changed 4 years ago by JacquesLB

I'm glad you identified the origin. Unfortunately, I'm not skilled enough to understand your fix.

Thank you anyway. J.

comment:13 Changed 4 years ago by mf2k (Frank Schima)

Keywords: xcode12 added

comment:14 Changed 4 years ago by JacquesLB

Any progress?

Jacques

comment:15 Changed 4 years ago by chrstphrchvz (Christopher Chavez)

To correct myself, stricmp() is declared in libsrc/util/strfuns.h, so maybe #include "util/strfuns.h" (or possibly #include "libutil.h") is all that's missing from libsrc/Wi/numeric.c. I will try that and open a PR if it works.

Last edited 4 years ago by chrstphrchvz (Christopher Chavez) (previous) (diff)

comment:16 Changed 4 years ago by chrstphrchvz (Christopher Chavez)

Still more errors to figure out:

/bin/sh ../../bin/libtool.macosx  --tag=CC   --mode=compile ccache /usr/bin/clang -DHAVE_CONFIG_H -I. -I../../libsrc/Dk   -I/opt/local/include/openssl-1.0 -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -fno-strict-aliasing -O2  -Wall  -DNDEBUG -DPOINTER_64   -I/opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_macports_macports-ports_devel_virtuoso-7/virtuoso-7/work/virtuoso-opensource-7.2.5/libsrc/Xml.new  -DOPENSSL_NO_KRB5      -I../../libsrc -I../../libsrc/Dk -I../../libsrc/zlib -I. -I../../libsrc/langfunc -I../../libsrc/plugin -I../../libsrc/Tidy -I../../libsrc/Xml.new -I../../libsrc/odbcsdk/include -DVAD -DDBP -DBIF_XPER -DOPSYS=\"Darwin\" -DHOST=\"x86_64-apple-darwin19.6.0\" -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -arch x86_64 -MT libwi_la-scn3.lo -MD -MP -MF .deps/libwi_la-scn3.Tpo -c -o libwi_la-scn3.lo `test -f 'scn3.c' || echo './'`scn3.c
 ccache /usr/bin/clang -DHAVE_CONFIG_H -I. -I../../libsrc/Dk -I/opt/local/include/openssl-1.0 -I/opt/local/include -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -fno-strict-aliasing -O2 -Wall -DNDEBUG -DPOINTER_64 -I/opt/local/var/macports/build/_opt_local_var_macports_sources_github.com_macports_macports-ports_devel_virtuoso-7/virtuoso-7/work/virtuoso-opensource-7.2.5/libsrc/Xml.new -DOPENSSL_NO_KRB5 -I../../libsrc -I../../libsrc/Dk -I../../libsrc/zlib -I. -I../../libsrc/langfunc -I../../libsrc/plugin -I../../libsrc/Tidy -I../../libsrc/Xml.new -I../../libsrc/odbcsdk/include -DVAD -DDBP -DBIF_XPER -DOPSYS=\"Darwin\" -DHOST=\"x86_64-apple-darwin19.6.0\" -pipe -Os -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk -arch x86_64 -MT libwi_la-scn3.lo -MD -MP -MF .deps/libwi_la-scn3.Tpo -c scn3.c  -fno-common -DPIC -o .libs/libwi_la-scn3.o
./scn3.l:165:5: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    scn3yyerror ("More '#line pop' directives than there were '#line push'");
    ^
./scn3.l:165:5: note: did you mean 'sql3yyerror'?
./sqlpar.h:35:13: note: 'sql3yyerror' declared here
extern void sql3yyerror (const char *s);
            ^
./scn3.l:412:1: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
TOKOPEN(BEGINX,'}');
^
./scn3.l:311:3: note: expanded from macro 'TOKOPEN'
  TOKOPEN_AUX(close); \
  ^
./scn3.l:273:9: note: expanded from macro 'TOKOPEN_AUX'
        scn3yyerror ("Too many opened parentheses"); \
        ^
./scn3.l:412:1: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./scn3.l:311:3: note: expanded from macro 'TOKOPEN'
  TOKOPEN_AUX(close); \
  ^
./scn3.l:277:5: note: expanded from macro 'TOKOPEN_AUX'
    scn3yyerror ("Curly brace is nested too deep"); \
    ^
./scn3.l:413:1: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
TOKOPEN(BEGIN_FN_X,'}');  /* was: "{"[ \t\r]*"fn", changed to avoid problems in '{ fname := ...' */
^
./scn3.l:311:3: note: expanded from macro 'TOKOPEN'
  TOKOPEN_AUX(close); \
  ^
./scn3.l:273:9: note: expanded from macro 'TOKOPEN_AUX'
        scn3yyerror ("Too many opened parentheses"); \
        ^
./scn3.l:413:1: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./scn3.l:311:3: note: expanded from macro 'TOKOPEN'
  TOKOPEN_AUX(close); \
  ^
./scn3.l:277:5: note: expanded from macro 'TOKOPEN_AUX'
    scn3yyerror ("Curly brace is nested too deep"); \
    ^
./scn3.l:414:1: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
TOKOPEN(BEGIN_CALL_X,'}'); /* the same */
^
./scn3.l:311:3: note: expanded from macro 'TOKOPEN'
  TOKOPEN_AUX(close); \
  ^
./scn3.l:273:9: note: expanded from macro 'TOKOPEN_AUX'
        scn3yyerror ("Too many opened parentheses"); \
        ^
./scn3.l:414:1: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./scn3.l:311:3: note: expanded from macro 'TOKOPEN'
  TOKOPEN_AUX(close); \
  ^
./scn3.l:277:5: note: expanded from macro 'TOKOPEN_AUX'
    scn3yyerror ("Curly brace is nested too deep"); \
    ^
./scn3.l:419:3: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
  TOKOPEN_AUX('}');
  ^
./scn3.l:273:9: note: expanded from macro 'TOKOPEN_AUX'
        scn3yyerror ("Too many opened parentheses"); \
        ^
./scn3.l:419:3: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./scn3.l:277:5: note: expanded from macro 'TOKOPEN_AUX'
    scn3yyerror ("Curly brace is nested too deep"); \
    ^
./scn3.l:422:1: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
TOKOPEN(BEGIN_OJ_X,'}'); /* the same */
^
./scn3.l:311:3: note: expanded from macro 'TOKOPEN'
  TOKOPEN_AUX(close); \
  ^
./scn3.l:273:9: note: expanded from macro 'TOKOPEN_AUX'
        scn3yyerror ("Too many opened parentheses"); \
        ^
./scn3.l:422:1: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./scn3.l:311:3: note: expanded from macro 'TOKOPEN'
  TOKOPEN_AUX(close); \
  ^
./scn3.l:277:5: note: expanded from macro 'TOKOPEN_AUX'
    scn3yyerror ("Curly brace is nested too deep"); \
    ^
./scn3.l:423:1: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
TOKOPEN(BEGIN_U_X,'}');
^
./scn3.l:311:3: note: expanded from macro 'TOKOPEN'
  TOKOPEN_AUX(close); \
  ^
./scn3.l:273:9: note: expanded from macro 'TOKOPEN_AUX'
        scn3yyerror ("Too many opened parentheses"); \
        ^
./scn3.l:423:1: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./scn3.l:311:3: note: expanded from macro 'TOKOPEN'
  TOKOPEN_AUX(close); \
  ^
./scn3.l:277:5: note: expanded from macro 'TOKOPEN_AUX'
    scn3yyerror ("Curly brace is nested too deep"); \
    ^
./scn3.l:424:1: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
TOKCLOSE(ENDX,'}');
^
./scn3.l:315:3: note: expanded from macro 'TOKCLOSE'
  TOKCLOSE_AUX(name,close); \
  ^
./scn3.l:286:5: note: expanded from macro 'TOKCLOSE_AUX'
    scn3yyerror ("Too many closing parentheses"); \
    ^
./scn3.l:473:8: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
              scn3yyerror ("Misplaced semicolon, check if square braces are balanced in expression");
              ^
./scn3.l:478:1: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
TOKOPEN('(',')');
^
./scn3.l:311:3: note: expanded from macro 'TOKOPEN'
  TOKOPEN_AUX(close); \
  ^
./scn3.l:273:9: note: expanded from macro 'TOKOPEN_AUX'
        scn3yyerror ("Too many opened parentheses"); \
        ^
./scn3.l:478:1: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./scn3.l:311:3: note: expanded from macro 'TOKOPEN'
  TOKOPEN_AUX(close); \
  ^
./scn3.l:277:5: note: expanded from macro 'TOKOPEN_AUX'
    scn3yyerror ("Curly brace is nested too deep"); \
    ^
./scn3.l:479:1: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
TOKOPEN('[',']');
^
./scn3.l:311:3: note: expanded from macro 'TOKOPEN'
  TOKOPEN_AUX(close); \
  ^
./scn3.l:273:9: note: expanded from macro 'TOKOPEN_AUX'
        scn3yyerror ("Too many opened parentheses"); \
        ^
./scn3.l:479:1: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
./scn3.l:311:3: note: expanded from macro 'TOKOPEN'
  TOKOPEN_AUX(close); \
  ^
./scn3.l:277:5: note: expanded from macro 'TOKOPEN_AUX'
    scn3yyerror ("Curly brace is nested too deep"); \
    ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.

comment:17 Changed 4 years ago by steb5067

virtuoso-7 is also a dependency for digikam. exactly the same problem noted as Jacques when trying to install digikam. trying the port clean, port install -t trick, but not expecting any luck.

comment:18 Changed 4 years ago by astrofitz (Michael Fitzgerald)

Cc: astrofitz added

comment:19 Changed 4 years ago by JacquesLB

I just installed XCode 12.1. Still the same error. This is not too surprising if they changed a compilation "Warning" to an "Error". They would not revert that. Jacques

comment:20 Changed 3 years ago by DaveStrickland (Dave Strickland)

Cc: DaveStrickland added

comment:21 Changed 3 years ago by JacquesLB

Any progress?

JLB

comment:22 Changed 3 years ago by chrstphrchvz (Christopher Chavez)

I submitted a fix for libsrc/Wi/numeric.c: https://github.com/openlink/virtuoso-opensource/pull/931

But at this point I'm inclined to give up and let someone use configure.cflags-append -Wno-error=implicit-function-declaration and/or see if upstream is interested in fixing this. There are even more errors (after working around the ones in comment:16) which I did not figure out how to work around:

sql3.c:8380:16: error: implicit declaration of function 'scn3yylex' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
      yychar = yylex (&yylval, scanner);
               ^
sql3.c:64:25: note: expanded from macro 'yylex'
#define yylex           scn3yylex
                        ^
sql3.c:8380:16: note: did you mean 'sql3yylex'?
sql3.c:64:25: note: expanded from macro 'yylex'
#define yylex           scn3yylex
                        ^
./sqlpar.h:34:12: note: 'sql3yylex' declared here
extern int sql3yylex (void);
           ^
./sql3.y:864:6: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                          yyerror (scanner,"duplicated referential actions");
                          ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
./sql3.y:864:6: note: did you mean 'sql3yyerror'?
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
./sqlpar.h:35:13: note: 'sql3yyerror' declared here
extern void sql3yyerror (const char *s);
            ^
./sql3.y:1134:4: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
          yyerror (scanner,"ALTER TABLE constraint must be foreign key, primary key, unique or check");
          ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
./sql3.y:2699:7: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                    yyerror (scanner,"syntax error");
                    ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
./sql3.y:2726:7: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                    yyerror (scanner,"Not valid data type in CONVERT ODBC Scalar function");
                    ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
./sql3.y:3838:6: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
            yyerror (scanner,"No stars allowed inside XML view definition");
            ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
./sql3.y:3963:9: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
               yyerror (scanner,"syntax error at WebDAV OWNER keyword");
               ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
./sql3.y:3978:3: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
                yyerror (scanner,"'=' expected");
                ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
./sql3.y:4287:7: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    { yyerror (scanner,"Language ADA not supported"); }
      ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
./sql3.y:4289:7: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    { yyerror (scanner,"Language COBOL not supported"); }
      ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
./sql3.y:4290:7: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    { yyerror (scanner,"Language FORTRAN not supported"); }
      ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
./sql3.y:4291:7: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    { yyerror (scanner,"Language MUMPS not supported"); }
      ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
./sql3.y:4292:7: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    { yyerror (scanner,"Language PASCAL not supported"); }
      ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
./sql3.y:4293:7: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    { yyerror (scanner,"Language PLI not supported"); }
      ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
./sql3.y:4489:76: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    { (yyval.box) = (yyvsp[0].box); if (!cl_name_to_host ((yyvsp[0].box))) yyerror (scanner,"undefined host name in cluster def"); }
                                                                           ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
./sql3.y:4527:57: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    { if (strlen ((yyvsp[-2].box)) >= DBS_NAME_MAX_LEN) yyerror (scanner,"cluster name too long");
                                                        ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
sql3.c:15979:7: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
      yyerror (scanner, YY_("syntax error"));
      ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^
sql3.c:16123:3: error: implicit declaration of function 'scn3yyerror' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
  yyerror (scanner, YY_("memory exhausted"));
  ^
sql3.c:65:25: note: expanded from macro 'yyerror'
#define yyerror         scn3yyerror
                        ^

comment:23 Changed 3 years ago by JacquesLB

Thank you for the effort.

Is it possible to pass the compilation options "configure.cflags-append -Wno-error=implicit-function-declaration " to MacPort when upgrading? Up to now I just use "sudo port upgrade virtuoso-7", which fails. But I am willing to try something more elaborate.

J.

comment:24 Changed 3 years ago by chrstphrchvz (Christopher Chavez)

comment:25 Changed 3 years ago by chrstphrchvz (Christopher Chavez)

Resolution: fixed
Status: assignedclosed

In 39c7fdd650518720e50a495c435e34ac56cb53c9/macports-ports (master):

virtuoso-7: allow implicit function declarations

Closes: #61216

comment:26 Changed 3 years ago by kencu (Ken)

just so we keep track...

I believe using this fix -Wno-error=implicit-function-declaration will mean it cannot build on arm64.

If that is true, we should perhaps mark all these somehow as we'll soon be back to fix them again (hopefully with upstream fixes.)

comment:27 in reply to:  26 Changed 3 years ago by jmroot (Joshua Root)

Replying to kencu:

I believe using this fix -Wno-error=implicit-function-declaration will mean it cannot build on arm64.

Slightly worse than that; it will build, but if there are any cases where the implicit declaration does not match the actual function definition, then incorrect machine code will be generated for the call. That will most likely result in mysterious incorrect runtime behaviour. You might think you could just trust that all the implicit declarations are correct, but that's unlikely to be the case because implicit declaration is always ambiguous. It doesn't convey whether the function takes varargs, for one thing, and that changes how the arguments are passed with the arm64 ABI. That's why Apple changed this warning to an error.

tl;dr, if you turn off this error, you also need to disable building for arm64.

comment:28 Changed 3 years ago by JacquesLB

Thank you everybody. virtuoso-7 installs without any problem now.

However, as mentioned in my first post, the aim was to install "tellico". Dependencies proceeded a bit further, and I stumbled on a similar problem with Building sane-backends:

:info:build scanimage.c:1229:42: error: implicit declaration of function 'basename' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
:info:build               png_set_iCCP(*png_ptr, *info_ptr, basename(icc_profile), PNG_COMPRESSION_TYPE_BASE, icc_buffer, icc_size);

Should I open a new ticket, or will somebody propagate the patch to other ports?

Jacques

Last edited 3 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:29 Changed 3 years ago by JacquesLB

My mistake. The ticket already exists:

#61362

JLB

Last edited 3 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)
Note: See TracTickets for help on using tickets.