Opened 4 years ago

Closed 3 months ago

Last modified 3 months ago

#60811 closed defect (fixed)

simulavr @1.0.0_2: Could not locate libbfd.so/libbfd.a and/or bfd.h

Reported by: neilt (Neil Tiffin) Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version: 2.6.2
Keywords: Cc:
Port: simulavr

Description

Trying a new install of simulavr fails.

% sudo port install simulavr
--->  Computing dependencies for simulavr
--->  Fetching archive for simulavr
--->  Attempting to fetch simulavr-1.0.0_2.darwin_19.x86_64.tbz2 from https://packages.macports.org/simulavr
--->  Attempting to fetch simulavr-1.0.0_2.darwin_19.x86_64.tbz2 from http://aus.us.packages.macports.org/macports/packages/simulavr
--->  Attempting to fetch simulavr-1.0.0_2.darwin_19.x86_64.tbz2 from https://ywg.ca.packages.macports.org/mirror/macports/packages/simulavr
--->  Configuring simulavr
Error: Failed to configure simulavr, consult /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_emulators_simulavr/simulavr/work/simulavr-1.0.0/config.log
Error: Failed to configure simulavr: configure failure: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_emulators_simulavr/simulavr/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port simulavr failed

Relevant spot in the log is:

:info:configure with_bfd = /opt/local/avr/host
:info:configure with_libiberty = /opt/local/avr/host
:info:configure checking bfd search- /opt/local/avr/host/i386-apple-darwin19.5.0/avr in "include" and "lib"... no
:info:configure checking bfd search- /opt/local/avr/host/avr in "include" and "lib"... no
:info:configure checking bfd search- /opt/local/avr/host in "" and ""... no
:info:configure checking bfd search- /opt/local/avr/host in "bfd" and "bfd"... no
:info:configure checking bfd search- /opt/local/avr/host in "include" and "lib64"... no
:info:configure checking bfd search- /opt/local/avr/host in "include" and "lib"... no
:info:configure checking bfd search- /opt/local/avr/host in "include" and ""... no
:info:configure configure: error: 
:info:configure     Could not locate libbfd.so/libbfd.a and/or bfd.h.
:info:configure     Please use the --with-bfd=<path to your libbfd library>
:info:configure  
:debug:sysinfo macOS 10.15 (darwin/19.5.0) arch i386
:debug:sysinfo MacPorts 2.6.2
:debug:sysinfo Xcode 12.0
:debug:sysinfo SDK 10.15
:debug:sysinfo MACOSX_DEPLOYMENT_TARGET: 10.15

Actual log attached.

Attachments (1)

main.log (2.3 MB) - added by neilt (Neil Tiffin) 4 years ago.

Change History (7)

Changed 4 years ago by neilt (Neil Tiffin)

Attachment: main.log added

comment:1 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

Keywords: simulavr removed
Summary: simulavr failed to configure Catalinasimulavr @1.0.0_2: Could not locate libbfd.so/libbfd.a and/or bfd.h

Looks very similar to a previous problem you reported in #60807. Maybe a similar fix is needed here.

comment:2 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)

We should probably update the port to 1.1.0 first. It was released earlier this year. It's here:

http://git.savannah.nongnu.org/cgit/simulavr.git

Version 1.0.0 which we're using now is 8 years old.

In the git repo I also see a 6-year-old tag "last-libbfd-libiberty" which suggests that the current version might not use libbfd and libiberty at all, which would solve the problem you're seeing.

The current port has a lot of patches and reinplaces that will take awhile to examine to determine which, if any, are still needed with 1.1.0.

comment:3 Changed 4 years ago by neilt (Neil Tiffin)

You may not need any patches. See below.

I cloned the savannah git locally.

Then did make build. I did not apply any patches.

Xcode Version 12.0 beta 2 (12A6163b).

ProductName: Mac OS X ProductVersion: 10.15.5 BuildVersion: 19F101

A few warnings no errors.

Then make check.

[==========] Running 23 tests from 4 test suites.
[----------] Global test environment set-up.
[----------] 1 test from EXAMPLE_SESSION_001
[ RUN      ] EXAMPLE_SESSION_001.TEST1
[       OK ] EXAMPLE_SESSION_001.TEST1 (18 ms)
[----------] 1 test from EXAMPLE_SESSION_001 (18 ms total)

[----------] 6 tests from SESSION_IRQ
[ RUN      ] SESSION_IRQ.IRQ1
[       OK ] SESSION_IRQ.IRQ1 (17 ms)
[ RUN      ] SESSION_IRQ.TC1
[       OK ] SESSION_IRQ.TC1 (17 ms)
[ RUN      ] SESSION_IRQ.TC2
[       OK ] SESSION_IRQ.TC2 (17 ms)
[ RUN      ] SESSION_IRQ.TC3
[       OK ] SESSION_IRQ.TC3 (19 ms)
[ RUN      ] SESSION_IRQ.TC4
[       OK ] SESSION_IRQ.TC4 (17 ms)
[ RUN      ] SESSION_IRQ.TC5
[       OK ] SESSION_IRQ.TC5 (16 ms)
[----------] 6 tests from SESSION_IRQ (103 ms total)

[----------] 8 tests from SESSION_IO_PIN
[ RUN      ] SESSION_IO_PIN.OPEN_DRAIN_M128
[       OK ] SESSION_IO_PIN.OPEN_DRAIN_M128 (65 ms)
[ RUN      ] SESSION_IO_PIN.OPEN_DRAIN_M16
[       OK ] SESSION_IO_PIN.OPEN_DRAIN_M16 (14 ms)
[ RUN      ] SESSION_IO_PIN.OPEN_DRAIN_M8
[       OK ] SESSION_IO_PIN.OPEN_DRAIN_M8 (12 ms)
[ RUN      ] SESSION_IO_PIN.OPEN_DRAIN_M164
[       OK ] SESSION_IO_PIN.OPEN_DRAIN_M164 (14 ms)
[ RUN      ] SESSION_IO_PIN.OPEN_DRAIN_M48
[       OK ] SESSION_IO_PIN.OPEN_DRAIN_M48 (12 ms)
[ RUN      ] SESSION_IO_PIN.OPEN_DRAIN_M640
[       OK ] SESSION_IO_PIN.OPEN_DRAIN_M640 (24 ms)
[ RUN      ] SESSION_IO_PIN.OPEN_DRAIN_T2313
[       OK ] SESSION_IO_PIN.OPEN_DRAIN_T2313 (12 ms)
[ RUN      ] SESSION_IO_PIN.OPEN_DRAIN_T25
[       OK ] SESSION_IO_PIN.OPEN_DRAIN_T25 (11 ms)
[----------] 8 tests from SESSION_IO_PIN (164 ms total)

[----------] 8 tests from SESSION_TRACE
[ RUN      ] SESSION_TRACE.TRACE_M128
[       OK ] SESSION_TRACE.TRACE_M128 (62 ms)
[ RUN      ] SESSION_TRACE.TRACE_M16
[       OK ] SESSION_TRACE.TRACE_M16 (15 ms)
[ RUN      ] SESSION_TRACE.TRACE_M8
[       OK ] SESSION_TRACE.TRACE_M8 (13 ms)
[ RUN      ] SESSION_TRACE.TRACE_M164
[       OK ] SESSION_TRACE.TRACE_M164 (15 ms)
[ RUN      ] SESSION_TRACE.TRACE_M48
[       OK ] SESSION_TRACE.TRACE_M48 (14 ms)
[ RUN      ] SESSION_TRACE.TRACE_M640
[       OK ] SESSION_TRACE.TRACE_M640 (25 ms)
[ RUN      ] SESSION_TRACE.TRACE_T2313
[       OK ] SESSION_TRACE.TRACE_T2313 (12 ms)
[ RUN      ] SESSION_TRACE.TRACE_T25
[       OK ] SESSION_TRACE.TRACE_T25 (12 ms)
[----------] 8 tests from SESSION_TRACE (168 ms total)

[----------] Global test environment tear-down
[==========] 23 tests from 4 test suites ran. (453 ms total)
[  PASSED  ] 23 tests.

Then

Ran 14706 tests in 7.380 seconds [1992.683 tests/second].
  Number of Passing Tests: 13850
  Number of Failing Tests: 0
  Number of Skipped Tests: 856 (opcode not supported by target)
Version 0, edited 4 years ago by neilt (Neil Tiffin) (next)

comment:4 in reply to:  3 Changed 3 months ago by ryandesign (Ryan Carsten Schmidt)

Replying to neilt:

You may not need any patches. See below.

I can confirm that. I've looked at each patch and reinplace.

Patchfiles:

Reinplaces:

Hopefully the fixes for the deleted autotools build system aren't needed for the new cmake build system.

I cloned the savannah git locally.

We prefer not to git clone in MacPorts—we prefer to use distfiles—but they don't offer an official distfile for 1.1.0 (I filed https://savannah.nongnu.org/bugs/?65923) and the automatically-generated tarball from their git web interface doesn't work (I filed https://savannah.nongnu.org/bugs/?65943).

Then did make build. I did not apply any patches.

The Makefile is a wrapper around the cmake build system so we wouldn't want to use that; we'd want to use the cmake portgroup and all of the options that it adds.

It uses C++11 now so the port needs to specify that with compiler.cxx_standard 2011.

The cmake build does all sorts of things automatically if it finds the right dependencies. If help2man is found, it builds the manpage. If makeinfo is found, it builds the info page. If gzip is found, it gzips the changelog. These are fine and we can add the help2man dependency so that the manpage gets built. The port already has a makeinfo dependency.

Some of the other things it does are less fine. If python 3.5 or later with the sphinx, rst2pdf, bs4, and requests modules is found, it builds the web site and manual. If doxygen and dot are found, it builds API documentation. If dpkg and fakeroot are found, it builds debian packaging. I don't think there are any switches to disable that behavior. Some of those are heavy dependencies (graphviz) that I'd rather not add, and others (debian) are just plain unnecessary for us. I may have to patch the CMakeLists.txt to ensure these optional features are not built even if the dependencies are found (due to our desire for ReproducibleBuilds).

comment:5 Changed 3 months ago by ryandesign (Ryan Carsten Schmidt)

Owner: set to ryandesign
Resolution: fixed
Status: newclosed

In 6766c09db64d4ea57a6fb6212b8d31cb554a0b80/macports-ports (master):

simulavr: Update to 1.1.0

Closes: #60811

comment:6 Changed 3 months ago by neilt (Neil Tiffin)

Confirmed this compiles in my environment, thank you.

Note: See TracTickets for help on using tickets.