Opened 8 years ago

Closed 8 years ago

#53568 closed defect (fixed)

sqlite3 3.17.0 fails to compile: use of unknown builtin

Reported by: hewonen (Kimmo Sundqvist) Owned by: Schamschula (Marius Schamschula)
Priority: High Milestone:
Component: ports Version: 2.4.0
Keywords: Cc: mojca (Mojca Miklavec), jeremyhu (Jeremy Huddleston Sequoia), kierans (Kieran Simpson), bK4gYuRo, hadrabap (Petr Hadraba), mopihopi, petrrr
Port: sqlite3

Description

Trying to upgrade outdated, the compile fails. Then uninstalling, cleaning and trying to reinstall, the result is the same.

Attachments (4)

main.log (26.4 KB) - added by hewonen (Kimmo Sundqvist) 8 years ago.
patch-sqlite3.c.diff (756 bytes) - added by Schamschula (Marius Schamschula) 8 years ago.
Portfile (4.1 KB) - added by Schamschula (Marius Schamschula) 8 years ago.
main.2.log (25.7 KB) - added by daveletourneau (Dave Létourneau) 8 years ago.
Post patch main.log

Download all attachments as: .zip

Change History (32)

Changed 8 years ago by hewonen (Kimmo Sundqvist)

Attachment: main.log added

comment:1 Changed 8 years ago by mf2k (Frank Schima)

Owner: set to Schamschula
Status: newassigned

In the future, please Cc the port maintainers (port info --maintainers sqlite3), if any.

comment:2 Changed 8 years ago by Schamschula (Marius Schamschula)

Looks like this is the same issue as https://github.com/perl11/potion/issues/86

What does

clang -dM -E -x c /dev/null | grep __clang_

print out?

comment:3 Changed 8 years ago by petrrr

I have the same issue. OSX 10.10. Unfortunately, this port is quite critical as it prevents the installation of quite some ports, in particular python.

The commando above gives the following for me:

#define __clang__ 1
#define __clang_major__ 6
#define __clang_minor__ 1
#define __clang_patchlevel__ 0
#define __clang_version__ "6.1.0 (clang-602.0.53)"

comment:4 Changed 8 years ago by hewonen (Kimmo Sundqvist)

I get

#define __clang__ 1
#define __clang_major__ 7
#define __clang_minor__ 0
#define __clang_patchlevel__ 2
#define __clang_version__ "7.0.2 (clang-700.1.81)"

This is a 10.10.5 system, up to date AFAIK.

comment:5 Changed 8 years ago by daveletourneau (Dave Létourneau)

I had the same problem this morning on a 10.10.5 system. The output of

clang -dM -E -x c /dev/null | grep __clang_

is...

#define __clang__ 1
#define __clang_major__ 7
#define __clang_minor__ 0
#define __clang_patchlevel__ 2
#define __clang_version__ "7.0.2 (clang-700.1.81)"
Last edited 8 years ago by daveletourneau (Dave Létourneau) (previous) (diff)

comment:6 Changed 8 years ago by Schamschula (Marius Schamschula)

We need to add a conversion routine between Apple-clang versions and llvm-clang versions.

Changed 8 years ago by Schamschula (Marius Schamschula)

Attachment: patch-sqlite3.c.diff added

Changed 8 years ago by Schamschula (Marius Schamschula)

Attachment: Portfile added

Changed 8 years ago by daveletourneau (Dave Létourneau)

Attachment: main.2.log added

Post patch main.log

comment:7 Changed 8 years ago by daveletourneau (Dave Létourneau)

Tried to manually patch and build the port with these commands:

port clean sqlite3
port fetch sqlite3
port extract sqlite3
cd `port dir sqlite3`
cd work/sqlite-autoconf-3170000/
wget https://trac.macports.org/raw-attachment/ticket/53568/patch-sqlite3.c.diff
patch -p0 < patch-sqlite3.c.diff
port build sqlite3

The patch is correctly applied but the build fails:

--->  Computing dependencies for sqlite3
--->  Configuring sqlite3
--->  Building sqlite3
Error: Failed to build sqlite3: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_databases_sqlite3/sqlite3/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port sqlite3 failed

I'm on a 10.10.5 system and this is the first time I face this kind of problem so maybe there is something simple I didn't do right. Linking a copy of my main.log file.

comment:8 Changed 8 years ago by mojca (Mojca Miklavec)

Cc: mojca added

comment:9 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: jeremyhu added

Jeremy tried to fix this by using a newer compiler in [bcc939f4f8b71aef04559128504538e1417b6a6f/macports-ports]; unfortunately, that introduces a circular dependency.

comment:10 Changed 8 years ago by ryandesign (Ryan Carsten Schmidt)

Priority: NormalHigh

comment:11 in reply to:  10 Changed 8 years ago by Schamschula (Marius Schamschula)

Replying to ryandesign:

We should probably begin with reporting the problem to the developers of sqlite3.

Apparently, sqlite only takes bug reports on their mailing list. I'm currently waiting for moderator approval to join...

comment:12 Changed 8 years ago by kierans (Kieran Simpson)

Cc: kierans added

comment:13 Changed 8 years ago by bK4gYuRo

Cc: bK4gYuRo added

comment:14 Changed 8 years ago by hadrabap (Petr Hadraba)

Cc: hadrabap added

comment:15 Changed 8 years ago by jbrinchmann

Cc: jbrinchmann added

comment:16 Changed 8 years ago by mopihopi

Cc: mopihopi added

comment:17 Changed 8 years ago by Schamschula (Marius Schamschula)

Update: I'm on the sqlite3 mailing list. I've posted the issue, and found that there already was a parallel discussion, started before I was able to join.

comment:18 Changed 8 years ago by petrrr

Cc: petrrr added

comment:19 Changed 8 years ago by Schamschula (Marius Schamschula)

In 41ded454/macports-ports:

sqlite3.17.0: use -DSQLITE_DISABLE_INTRINSIC to avoid build issue

See: #53568

comment:20 Changed 8 years ago by Schamschula (Marius Schamschula)

The above change configure.args is the workaround suggested by the sqlite3 developers. Let me know if this works for the older OS versions.

comment:21 Changed 8 years ago by MichalMMac (Michal Moravec)

Thanks! I've found this problem few minutes ago. I manually added DSQLITE_DISABLE_INTRINSIC flag to /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/databases/sqlite3/Portfile and installed sqlite3 on 10.10.5 with success.

comment:22 Changed 8 years ago by ymotongpoo (Yoshi Yamaguchi)

I tried to apply the workaround, but I couldn't find the Portfile. The only directory existing under /opt/local/var/macports/sources/rsync.macports.org/macports is release.

comment:23 Changed 8 years ago by hadrabap (Petr Hadraba)

I have the Portfile here:

localhost:~ petr$ cd /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/databases/sqlite3/
localhost:sqlite3 petr$ la
total 16
drwxr-xr-x    3 root  505  -  102 14 úno 21:53 .
drwxr-xr-x  160 root  505  - 5440 28 led 13:55 ..
-rw-r--r--    1 root  505  - 4318 14 úno 21:53 Portfile
localhost:sqlite3 petr$ 

And it worked as expected.

comment:24 in reply to:  23 ; Changed 8 years ago by ymotongpoo (Yoshi Yamaguchi)

Replying to hadrabap:

I have the Portfile here:

localhost:~ petr$ cd /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/databases/sqlite3/
localhost:sqlite3 petr$ la
total 16
drwxr-xr-x    3 root  505  -  102 14 úno 21:53 .
drwxr-xr-x  160 root  505  - 5440 28 led 13:55 ..
-rw-r--r--    1 root  505  - 4318 14 úno 21:53 Portfile
localhost:sqlite3 petr$ 

And it worked as expected.

In my case there's no directory database under release as well.

% cd /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs
% find . -name "Portfile"
./base/doc/exampleport/Portfile
./base/src/macports1.0/tests/Portfile
./base/src/package1.0/tests/Portfile
./base/src/port1.0/tests/Portfile
./base/tests/test/checksums-1/Portfile
./base/tests/test/dependencies-a/Portfile
./base/tests/test/dependencies-b/Portfile
./base/tests/test/dependencies-c/Portfile
./base/tests/test/dependencies-d/Portfile
./base/tests/test/dependencies-e/Portfile
./base/tests/test/envvariables/Portfile
./base/tests/test/site-tags/Portfile
./base/tests/test/statefile-unknown-version/Portfile
./base/tests/test/statefile-version1/Portfile
./base/tests/test/statefile-version1-outdated/Portfile
./base/tests/test/statefile-version2/Portfile
./base/tests/test/statefile-version2-invalid/Portfile
./base/tests/test/statefile-version2-outdated/Portfile
./base/tests/test/svn-and-patchsites/Portfile
./base/tests/test/trace/Portfile
./base/tests/test/variants/Portfile
./base/tests/test/xcodeversion/Portfile

comment:25 Changed 8 years ago by jbrinchmann

Cc: jbrinchmann removed

comment:26 in reply to:  24 ; Changed 8 years ago by hadrabap (Petr Hadraba)

There are two local "tarballs" actually. The one in question is a local copy of all available ports. This lives in .../rsync.macports.org/release/tarballs/ports/. The second one is the MacPorts harness itself which lives in .../rsync.macports.org/macports/release/tarballs/base/. See the extra macports/ directory in the middle.

Both of these structures are rsynced from the MacPorts servers. As far as I understand it.

Does the path /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/databases/sqlite3/ — without macports/ between rsync.macports.org/ and release/ in the name — exist in your system?

Replying to ymotongpoo:

Replying to hadrabap:

I have the Portfile here:

localhost:~ petr$ cd /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/databases/sqlite3/
localhost:sqlite3 petr$ la
total 16
drwxr-xr-x    3 root  505  -  102 14 úno 21:53 .
drwxr-xr-x  160 root  505  - 5440 28 led 13:55 ..
-rw-r--r--    1 root  505  - 4318 14 úno 21:53 Portfile
localhost:sqlite3 petr$ 

And it worked as expected.

In my case there's no directory database under release as well.

% cd /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs
% find . -name "Portfile"
./base/doc/exampleport/Portfile
./base/src/macports1.0/tests/Portfile
./base/src/package1.0/tests/Portfile
./base/src/port1.0/tests/Portfile
./base/tests/test/checksums-1/Portfile
./base/tests/test/dependencies-a/Portfile
./base/tests/test/dependencies-b/Portfile
./base/tests/test/dependencies-c/Portfile
./base/tests/test/dependencies-d/Portfile
./base/tests/test/dependencies-e/Portfile
./base/tests/test/envvariables/Portfile
./base/tests/test/site-tags/Portfile
./base/tests/test/statefile-unknown-version/Portfile
./base/tests/test/statefile-version1/Portfile
./base/tests/test/statefile-version1-outdated/Portfile
./base/tests/test/statefile-version2/Portfile
./base/tests/test/statefile-version2-invalid/Portfile
./base/tests/test/statefile-version2-outdated/Portfile
./base/tests/test/svn-and-patchsites/Portfile
./base/tests/test/trace/Portfile
./base/tests/test/variants/Portfile
./base/tests/test/xcodeversion/Portfile

comment:27 in reply to:  26 Changed 8 years ago by ymotongpoo (Yoshi Yamaguchi)

Thanks for the comment! I fixed the local copy one, i.e. the one lies under .../rsync.macports.org/release/tarballs/ports/, and it worked.

Replying to hadrabap:

There are two local "tarballs" actually. The one in question is a local copy of all available ports. This lives in .../rsync.macports.org/release/tarballs/ports/. The second one is the MacPorts harness itself which lives in .../rsync.macports.org/macports/release/tarballs/base/. See the extra macports/ directory in the middle.

Both of these structures are rsynced from the MacPorts servers. As far as I understand it.

Does the path /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/databases/sqlite3/ — without macports/ between rsync.macports.org/ and release/ in the name — exist in your system?

Replying to ymotongpoo:

Replying to hadrabap:

I have the Portfile here:

localhost:~ petr$ cd /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/databases/sqlite3/
localhost:sqlite3 petr$ la
total 16
drwxr-xr-x    3 root  505  -  102 14 úno 21:53 .
drwxr-xr-x  160 root  505  - 5440 28 led 13:55 ..
-rw-r--r--    1 root  505  - 4318 14 úno 21:53 Portfile
localhost:sqlite3 petr$ 

And it worked as expected.

In my case there's no directory database under release as well.

% cd /opt/local/var/macports/sources/rsync.macports.org/macports/release/tarballs
% find . -name "Portfile"
./base/doc/exampleport/Portfile
./base/src/macports1.0/tests/Portfile
./base/src/package1.0/tests/Portfile
./base/src/port1.0/tests/Portfile
./base/tests/test/checksums-1/Portfile
./base/tests/test/dependencies-a/Portfile
./base/tests/test/dependencies-b/Portfile
./base/tests/test/dependencies-c/Portfile
./base/tests/test/dependencies-d/Portfile
./base/tests/test/dependencies-e/Portfile
./base/tests/test/envvariables/Portfile
./base/tests/test/site-tags/Portfile
./base/tests/test/statefile-unknown-version/Portfile
./base/tests/test/statefile-version1/Portfile
./base/tests/test/statefile-version1-outdated/Portfile
./base/tests/test/statefile-version2/Portfile
./base/tests/test/statefile-version2-invalid/Portfile
./base/tests/test/statefile-version2-outdated/Portfile
./base/tests/test/svn-and-patchsites/Portfile
./base/tests/test/trace/Portfile
./base/tests/test/variants/Portfile
./base/tests/test/xcodeversion/Portfile

comment:28 Changed 8 years ago by Schamschula (Marius Schamschula)

Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.