Home Page

Compiling SDLmame (0.219) on OSX PPC

Posted By: MacBox360

Compiling SDLmame (0.219) on OSX PPC - 03/14/20 01:30 PM

Well, maybe I am a bit stubborn here but I think to be VERY close to the goal...
What is driving me crazy are the errors in debugosx.mm so instead of trying to fix them (I have not enough knowledge) I would like to skip that part entirely, is it possible?
I mean, when a" Release" executable is produced, is the Debugger part really needed? Is there a clean way (commenting some lines in the scripts or the sources, for example) to exclude it from the build process?
I have also tried with the option NO_DEBUGGER=1 after "make" command but without success, the Debugger part is compiled anyway.

Many thanks in advance...
Posted By: R. Belmont

Re: Compiling SDLmame (0.219) on OSX PPC - 03/14/20 03:44 PM

What are the errors? As far as I'm aware nobody's removed ancient OS X compatibility yet, although I plan to because of the sheer number of warnings it's causing on Xcode 11.

Also, did you remember to do REGENIE=1 with NO_DEBUGGER=1?
Posted By: MacBox360

Re: Compiling SDLmame (0.219) on OSX PPC - 03/14/20 04:42 PM

Compiling with REGENIE=1 and NO_DEBUGGER=1 produces the same effect, the debugger part is not skipped.
This is the error I encounter (GCC 7.5 and SDL 2.0.3)

Code
Objective-C compiling src/osd/modules/debugger/debugosx.mm...
In file included from ../../../../../src/emu/emu.h:104:0,
                 from ../../../../../src/osd/modules/debugger/debugosx.mm:20:
../../../../../src/emu/devcb.h: In lambda function:
../../../../../src/emu/devcb.h:416:53: error: 'cb' was not declared in this scope
    m_builder.build([&result] (auto &&f) { result = [cb = std::move(f)] (address_space &space, offs_t offset, typename T::input_mask_t mem_mask) { return cb(space, offset, mem_mask); }; });
                                                     ^~
../../../../../src/emu/devcb.h: In member function 'virtual devcb_read<Result, DefaultMask>::func_t devcb_read<Result, DefaultMask>::log_creator::create()':
../../../../../src/emu/devcb.h:434:8: error: 'devbase' was not declared in this scope
      [&devbase = m_devbase, message = std::move(m_message)] (address_space &space, offs_t offset, std::make_unsigned_t<Result> mem_mask)
        ^~~~~~~
../../../../../src/emu/devcb.h:434:8: note: suggested alternative: 'm_devbase'
      [&devbase = m_devbase, message = std::move(m_message)] (address_space &space, offs_t offset, std::make_unsigned_t<Result> mem_mask)
        ^~~~~~~
        m_devbase
../../../../../src/emu/devcb.h:434:29: error: 'message' was not declared in this scope
      [&devbase = m_devbase, message = std::move(m_message)] (address_space &space, offs_t offset, std::make_unsigned_t<Result> mem_mask)
                             ^~~~~~~
../../../../../src/emu/devcb.h:434:29: note: suggested alternative: 'm_message'
      [&devbase = m_devbase, message = std::move(m_message)] (address_space &space, offs_t offset, std::make_unsigned_t<Result> mem_mask)
                             ^~~~~~~
                             m_message
../../../../../src/emu/devcb.h: In member function 'void devcb_read<Result, DefaultMask>::transform_builder<Source, Func>::build(T&&)':
../../../../../src/emu/devcb.h:531:21: error: 'c' was not declared in this scope
    auto wrap([this, c = std::forward<T>(chain)] (auto &&f) mutable { this->build(std::move(c), std::move(f)); });
                     ^
../../../../../src/emu/devcb.h: In member function 'void devcb_read<Result, DefaultMask>::transform_builder<Source, Func>::build(T&&, U&&)':
../../../../../src/emu/devcb.h:546:7: error: 'src' was not declared in this scope
      [src = std::forward<U>(f), cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_mask_t &mem_mask)
       ^~~
../../../../../src/emu/devcb.h:546:7: note: suggested alternative: 'm_src'
      [src = std::forward<U>(f), cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_mask_t &mem_mask)
       ^~~
       m_src
../../../../../src/emu/devcb.h:546:33: error: 'cb' was not declared in this scope
      [src = std::forward<U>(f), cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_mask_t &mem_mask)
                                 ^~
../../../../../src/emu/devcb.h:546:33: note: suggested alternative: 'm_cb'
      [src = std::forward<U>(f), cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_mask_t &mem_mask)
                                 ^~
                                 m_cb
../../../../../src/emu/devcb.h:546:61: error: 'exor' was not declared in this scope
      [src = std::forward<U>(f), cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_mask_t &mem_mask)
                                                             ^~~~
../../../../../src/emu/devcb.h:546:61: note: suggested alternative: 'exit'
      [src = std::forward<U>(f), cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_mask_t &mem_mask)
                                                             ^~~~
                                                             exit
../../../../../src/emu/devcb.h:546:82: error: 'mask' was not declared in this scope
      [src = std::forward<U>(f), cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_mask_t &mem_mask)
                                                                                  ^~~~
../../../../../src/emu/devcb.h:546:82: note: suggested alternative: 'mask_t'
      [src = std::forward<U>(f), cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_mask_t &mem_mask)
                                                                                  ^~~~
                                                                                  mask_t
../../../../../src/emu/devcb.h: In member function 'void devcb_read<Result, DefaultMask>::functoid_builder<Func>::build(T&&)':
../../../../../src/emu/devcb.h:601:7: error: 'cb' was not declared in this scope
      [cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
       ^~
../../../../../src/emu/devcb.h:601:7: note: suggested alternative: 'm_cb'
      [cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
       ^~
       m_cb
../../../../../src/emu/devcb.h:601:35: error: 'exor' was not declared in this scope
      [cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
                                   ^~~~
../../../../../src/emu/devcb.h:601:35: note: suggested alternative: 'exit'
      [cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
                                   ^~~~
                                   exit
../../../../../src/emu/devcb.h:601:56: error: 'mask' was not declared in this scope
      [cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
                                                        ^~~~
../../../../../src/emu/devcb.h:601:56: note: suggested alternative: 'mask_t'
      [cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
                                                        ^~~~
                                                        mask_t
../../../../../src/emu/devcb.h: In member function 'void devcb_read<Result, DefaultMask>::delegate_builder<Delegate>::build(T&&)':
../../../../../src/emu/devcb.h:667:7: error: 'cb' was not declared in this scope
      [cb = std::move(this->m_delegate), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
       ^~
../../../../../src/emu/devcb.h:667:41: error: 'exor' was not declared in this scope
      [cb = std::move(this->m_delegate), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
                                         ^~~~
../../../../../src/emu/devcb.h:667:41: note: suggested alternative: 'exit'
      [cb = std::move(this->m_delegate), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
                                         ^~~~
                                         exit
../../../../../src/emu/devcb.h:667:62: error: 'mask' was not declared in this scope
      [cb = std::move(this->m_delegate), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
                                                              ^~~~
../../../../../src/emu/devcb.h:667:62: note: suggested alternative: 'mask_t'
      [cb = std::move(this->m_delegate), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
                                                              ^~~~
                                                              mask_t
../../../../../src/emu/devcb.h: In member function 'void devcb_read<Result, DefaultMask>::ioport_builder::build(T&&)':
../../../../../src/emu/devcb.h:724:8: error: 'port' was not declared in this scope
      [&port = *ioport, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
        ^~~~
../../../../../src/emu/devcb.h:724:8: note: suggested alternative: 'qsort'
      [&port = *ioport, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
        ^~~~
        qsort
../../../../../src/emu/devcb.h:724:24: error: 'exor' was not declared in this scope
      [&port = *ioport, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
                        ^~~~
../../../../../src/emu/devcb.h:724:24: note: suggested alternative: 'exit'
      [&port = *ioport, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
                        ^~~~
                        exit
../../../../../src/emu/devcb.h:724:45: error: 'mask' was not declared in this scope
      [&port = *ioport, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
                                             ^~~~
../../../../../src/emu/devcb.h:724:45: note: suggested alternative: 'mask_t'
      [&port = *ioport, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_mask_t mem_mask)
                                             ^~~~
                                             mask_t
../../../../../src/emu/devcb.h: In member function 'virtual devcb_write<Input, DefaultMask>::func_t devcb_write<Input, DefaultMask>::creator_impl<T>::create()':
../../../../../src/emu/devcb.h:1018:12: error: 'cb' was not declared in this scope
    return [cb = m_builder.build()] (address_space &space, offs_t offset, Input data, std::make_unsigned_t<Input> mem_mask) { cb(space, offset, data, mem_mask); };
            ^~
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::transform_builder<Source, Func>::build()':
../../../../../src/emu/devcb.h:1119:7: error: 'cb' was not declared in this scope
      [cb = std::move(m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_t data, std::make_unsigned_t<input_t> &mem_mask)
       ^~
../../../../../src/emu/devcb.h:1119:7: note: suggested alternative: 'm_cb'
      [cb = std::move(m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_t data, std::make_unsigned_t<input_t> &mem_mask)
       ^~
       m_cb
../../../../../src/emu/devcb.h:1119:29: error: 'exor' was not declared in this scope
      [cb = std::move(m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_t data, std::make_unsigned_t<input_t> &mem_mask)
                             ^~~~
../../../../../src/emu/devcb.h:1119:29: note: suggested alternative: 'exit'
      [cb = std::move(m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_t data, std::make_unsigned_t<input_t> &mem_mask)
                             ^~~~
                             exit
../../../../../src/emu/devcb.h:1119:50: error: 'mask' was not declared in this scope
      [cb = std::move(m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_t data, std::make_unsigned_t<input_t> &mem_mask)
                                                  ^~~~
../../../../../src/emu/devcb.h:1119:50: note: suggested alternative: 'mask_t'
      [cb = std::move(m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_t data, std::make_unsigned_t<input_t> &mem_mask)
                                                  ^~~~
                                                  mask_t
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::transform_builder<Source, Func>::build(T&&)':
../../../../../src/emu/devcb.h:1140:7: error: 'f' was not declared in this scope
      [f = std::move(chain), cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_t data, std::make_unsigned_t<input_t> &mem_mask)
       ^
../../../../../src/emu/devcb.h:1140:29: error: 'cb' was not declared in this scope
      [f = std::move(chain), cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_t data, std::make_unsigned_t<input_t> &mem_mask)
                             ^~
../../../../../src/emu/devcb.h:1140:29: note: suggested alternative: 'm_cb'
      [f = std::move(chain), cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_t data, std::make_unsigned_t<input_t> &mem_mask)
                             ^~
                             m_cb
../../../../../src/emu/devcb.h:1140:57: error: 'exor' was not declared in this scope
      [f = std::move(chain), cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_t data, std::make_unsigned_t<input_t> &mem_mask)
                                                         ^~~~
../../../../../src/emu/devcb.h:1140:57: note: suggested alternative: 'exit'
      [f = std::move(chain), cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_t data, std::make_unsigned_t<input_t> &mem_mask)
                                                         ^~~~
                                                         exit
../../../../../src/emu/devcb.h:1140:78: error: 'mask' was not declared in this scope
      [f = std::move(chain), cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_t data, std::make_unsigned_t<input_t> &mem_mask)
                                                                              ^~~~
../../../../../src/emu/devcb.h:1140:78: note: suggested alternative: 'mask_t'
      [f = std::move(chain), cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t &offset, input_t data, std::make_unsigned_t<input_t> &mem_mask)
                                                                              ^~~~
                                                                              mask_t
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::first_transform_builder<Sink, Func>::build()':
../../../../../src/emu/devcb.h:1200:7: error: 'sink' was not declared in this scope
      [sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
       ^~~~
../../../../../src/emu/devcb.h:1200:7: note: suggested alternative: 'Sink'
      [sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
       ^~~~
       Sink
../../../../../src/emu/devcb.h:1200:30: error: 'cb' was not declared in this scope
      [sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                              ^~
../../../../../src/emu/devcb.h:1200:30: note: suggested alternative: 'm_cb'
      [sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                              ^~
                              m_cb
../../../../../src/emu/devcb.h:1200:58: error: 'in_exor' was not declared in this scope
      [sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                          ^~~~~~~
../../../../../src/emu/devcb.h:1200:58: note: suggested alternative: 'm_in_exor'
      [sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                          ^~~~~~~
                                                          m_in_exor
../../../../../src/emu/devcb.h:1200:79: error: 'in_mask' was not declared in this scope
      [sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                               ^~~~~~~
../../../../../src/emu/devcb.h:1200:79: note: suggested alternative: 'm_in_mask'
      [sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                               ^~~~~~~
                                                                               m_in_mask
../../../../../src/emu/devcb.h:1200:100: error: 'exor' was not declared in this scope
      [sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                                    ^~~~
../../../../../src/emu/devcb.h:1200:100: note: suggested alternative: 'exit'
      [sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                                    ^~~~
                                                                                                    exit
../../../../../src/emu/devcb.h:1200:121: error: 'mask' was not declared in this scope
      [sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                                                         ^~~~
../../../../../src/emu/devcb.h:1200:121: note: suggested alternative: 'mask_t'
      [sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                                                         ^~~~
                                                                                                                         mask_t
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::first_transform_builder<Sink, Func>::build(T&&)':
../../../../../src/emu/devcb.h:1221:7: error: 'f' was not declared in this scope
      [f = std::move(chain), sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
       ^
../../../../../src/emu/devcb.h:1221:29: error: 'sink' was not declared in this scope
      [f = std::move(chain), sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                             ^~~~
../../../../../src/emu/devcb.h:1221:29: note: suggested alternative: 'Sink'
      [f = std::move(chain), sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                             ^~~~
                             Sink
../../../../../src/emu/devcb.h:1221:52: error: 'cb' was not declared in this scope
      [f = std::move(chain), sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                    ^~
../../../../../src/emu/devcb.h:1221:52: note: suggested alternative: 'm_cb'
      [f = std::move(chain), sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                    ^~
                                                    m_cb
../../../../../src/emu/devcb.h:1221:80: error: 'in_exor' was not declared in this scope
      [f = std::move(chain), sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                ^~~~~~~
../../../../../src/emu/devcb.h:1221:80: note: suggested alternative: 'm_in_exor'
      [f = std::move(chain), sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                ^~~~~~~
                                                                                m_in_exor
../../../../../src/emu/devcb.h:1221:101: error: 'in_mask' was not declared in this scope
      [f = std::move(chain), sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                                     ^~~~~~~
../../../../../src/emu/devcb.h:1221:101: note: suggested alternative: 'm_in_mask'
      [f = std::move(chain), sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                                     ^~~~~~~
                                                                                                     m_in_mask
../../../../../src/emu/devcb.h:1221:122: error: 'exor' was not declared in this scope
      [f = std::move(chain), sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                                                          ^~~~
../../../../../src/emu/devcb.h:1221:122: note: suggested alternative: 'exit'
      [f = std::move(chain), sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                                                          ^~~~
                                                                                                                          exit
../../../../../src/emu/devcb.h:1221:143: error: 'mask' was not declared in this scope
      [f = std::move(chain), sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                                                                               ^~~~
../../../../../src/emu/devcb.h:1221:143: note: suggested alternative: 'mask_t'
      [f = std::move(chain), sink = m_sink.build(), cb = std::move(this->m_cb), in_exor = m_in_exor, in_mask = m_in_mask, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                                                                               ^~~~
                                                                                                                                               mask_t
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::functoid_builder<Func>::wrapped_builder::build()':
../../../../../src/emu/devcb.h:1258:8: error: 'cb' was not declared in this scope
       [cb = std::move(this->m_cb)] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
        ^~
../../../../../src/emu/devcb.h:1258:8: note: suggested alternative: 'm_cb'
       [cb = std::move(this->m_cb)] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
        ^~
        m_cb
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::functoid_builder<Func>::build()':
../../../../../src/emu/devcb.h:1308:7: error: 'cb' was not declared in this scope
      [cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
       ^~
../../../../../src/emu/devcb.h:1308:7: note: suggested alternative: 'm_cb'
      [cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
       ^~
       m_cb
../../../../../src/emu/devcb.h:1308:35: error: 'exor' was not declared in this scope
      [cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                   ^~~~
../../../../../src/emu/devcb.h:1308:35: note: suggested alternative: 'exit'
      [cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                   ^~~~
                                   exit
../../../../../src/emu/devcb.h:1308:56: error: 'mask' was not declared in this scope
      [cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                        ^~~~
../../../../../src/emu/devcb.h:1308:56: note: suggested alternative: 'mask_t'
      [cb = std::move(this->m_cb), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                        ^~~~
                                                        mask_t
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::delegate_builder<Delegate>::wrapped_builder::build()':
../../../../../src/emu/devcb.h:1352:8: error: 'cb' was not declared in this scope
       [cb = std::move(this->m_delegate)] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
        ^~
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::delegate_builder<Delegate>::build()':
../../../../../src/emu/devcb.h:1418:7: error: 'cb' was not declared in this scope
      [cb = std::move(this->m_delegate), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
       ^~
../../../../../src/emu/devcb.h:1418:41: error: 'exor' was not declared in this scope
      [cb = std::move(this->m_delegate), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                         ^~~~
../../../../../src/emu/devcb.h:1418:41: note: suggested alternative: 'exit'
      [cb = std::move(this->m_delegate), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                         ^~~~
                                         exit
../../../../../src/emu/devcb.h:1418:62: error: 'mask' was not declared in this scope
      [cb = std::move(this->m_delegate), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                              ^~~~
../../../../../src/emu/devcb.h:1418:62: note: suggested alternative: 'mask_t'
      [cb = std::move(this->m_delegate), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                              ^~~~
                                                              mask_t
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::inputline_builder::wrapped_builder::build()':
../../../../../src/emu/devcb.h:1480:9: error: 'exec' was not declared in this scope
       [&exec = *m_exec, linenum = m_linenum] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
         ^~~~
../../../../../src/emu/devcb.h:1480:9: note: suggested alternative: 'm_exec'
       [&exec = *m_exec, linenum = m_linenum] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
         ^~~~
         m_exec
../../../../../src/emu/devcb.h:1480:25: error: 'linenum' was not declared in this scope
       [&exec = *m_exec, linenum = m_linenum] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                         ^~~~~~~
../../../../../src/emu/devcb.h:1480:25: note: suggested alternative: 'm_linenum'
       [&exec = *m_exec, linenum = m_linenum] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                         ^~~~~~~
                         m_linenum
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::inputline_builder::build()':
../../../../../src/emu/devcb.h:1571:8: error: 'exec' was not declared in this scope
      [&exec = *m_exec, linenum = m_linenum, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
        ^~~~
../../../../../src/emu/devcb.h:1571:8: note: suggested alternative: 'm_exec'
      [&exec = *m_exec, linenum = m_linenum, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
        ^~~~
        m_exec
../../../../../src/emu/devcb.h:1571:24: error: 'linenum' was not declared in this scope
      [&exec = *m_exec, linenum = m_linenum, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                        ^~~~~~~
../../../../../src/emu/devcb.h:1571:24: note: suggested alternative: 'm_linenum'
      [&exec = *m_exec, linenum = m_linenum, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                        ^~~~~~~
                        m_linenum
../../../../../src/emu/devcb.h:1571:45: error: 'exor' was not declared in this scope
      [&exec = *m_exec, linenum = m_linenum, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                             ^~~~
../../../../../src/emu/devcb.h:1571:45: note: suggested alternative: 'exit'
      [&exec = *m_exec, linenum = m_linenum, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                             ^~~~
                                             exit
../../../../../src/emu/devcb.h:1571:66: error: 'mask' was not declared in this scope
      [&exec = *m_exec, linenum = m_linenum, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                  ^~~~
../../../../../src/emu/devcb.h:1571:66: note: suggested alternative: 'mask_t'
      [&exec = *m_exec, linenum = m_linenum, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                  ^~~~
                                                                  mask_t
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::latched_inputline_builder::wrapped_builder::build()':
../../../../../src/emu/devcb.h:1635:9: error: 'exec' was not declared in this scope
       [&exec = *m_exec, linenum = m_linenum, value = m_value] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
         ^~~~
../../../../../src/emu/devcb.h:1635:9: note: suggested alternative: 'm_exec'
       [&exec = *m_exec, linenum = m_linenum, value = m_value] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
         ^~~~
         m_exec
../../../../../src/emu/devcb.h:1635:25: error: 'linenum' was not declared in this scope
       [&exec = *m_exec, linenum = m_linenum, value = m_value] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                         ^~~~~~~
../../../../../src/emu/devcb.h:1635:25: note: suggested alternative: 'm_linenum'
       [&exec = *m_exec, linenum = m_linenum, value = m_value] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                         ^~~~~~~
                         m_linenum
../../../../../src/emu/devcb.h:1635:46: error: 'value' was not declared in this scope
       [&exec = *m_exec, linenum = m_linenum, value = m_value] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                              ^~~~~
../../../../../src/emu/devcb.h:1635:46: note: suggested alternative: 'm_value'
       [&exec = *m_exec, linenum = m_linenum, value = m_value] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                              ^~~~~
                                              m_value
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::latched_inputline_builder::build()':
../../../../../src/emu/devcb.h:1730:8: error: 'exec' was not declared in this scope
      [&exec = *m_exec, linenum = m_linenum, value = m_value, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
        ^~~~
../../../../../src/emu/devcb.h:1730:8: note: suggested alternative: 'm_exec'
      [&exec = *m_exec, linenum = m_linenum, value = m_value, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
        ^~~~
        m_exec
../../../../../src/emu/devcb.h:1730:24: error: 'linenum' was not declared in this scope
      [&exec = *m_exec, linenum = m_linenum, value = m_value, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                        ^~~~~~~
../../../../../src/emu/devcb.h:1730:24: note: suggested alternative: 'm_linenum'
      [&exec = *m_exec, linenum = m_linenum, value = m_value, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                        ^~~~~~~
                        m_linenum
../../../../../src/emu/devcb.h:1730:45: error: 'value' was not declared in this scope
      [&exec = *m_exec, linenum = m_linenum, value = m_value, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                             ^~~~~
../../../../../src/emu/devcb.h:1730:45: note: suggested alternative: 'm_value'
      [&exec = *m_exec, linenum = m_linenum, value = m_value, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                             ^~~~~
                                             m_value
../../../../../src/emu/devcb.h:1730:62: error: 'exor' was not declared in this scope
      [&exec = *m_exec, linenum = m_linenum, value = m_value, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                              ^~~~
../../../../../src/emu/devcb.h:1730:62: note: suggested alternative: 'exit'
      [&exec = *m_exec, linenum = m_linenum, value = m_value, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                              ^~~~
                                                              exit
../../../../../src/emu/devcb.h:1730:83: error: 'mask' was not declared in this scope
      [&exec = *m_exec, linenum = m_linenum, value = m_value, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                   ^~~~
../../../../../src/emu/devcb.h:1730:83: note: suggested alternative: 'mask_t'
      [&exec = *m_exec, linenum = m_linenum, value = m_value, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                   ^~~~
                                                                                   mask_t
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::ioport_builder::wrapped_builder::build()':
../../../../../src/emu/devcb.h:1772:9: error: 'port' was not declared in this scope
       [&port = *ioport] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
         ^~~~
../../../../../src/emu/devcb.h:1772:9: note: suggested alternative: 'qsort'
       [&port = *ioport] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
         ^~~~
         qsort
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::ioport_builder::build()':
../../../../../src/emu/devcb.h:1830:8: error: 'port' was not declared in this scope
      [&port = *ioport, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
        ^~~~
../../../../../src/emu/devcb.h:1830:8: note: suggested alternative: 'qsort'
      [&port = *ioport, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
        ^~~~
        qsort
../../../../../src/emu/devcb.h:1830:24: error: 'exor' was not declared in this scope
      [&port = *ioport, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                        ^~~~
../../../../../src/emu/devcb.h:1830:24: note: suggested alternative: 'exit'
      [&port = *ioport, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                        ^~~~
                        exit
../../../../../src/emu/devcb.h:1830:45: error: 'mask' was not declared in this scope
      [&port = *ioport, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                             ^~~~
../../../../../src/emu/devcb.h:1830:45: note: suggested alternative: 'mask_t'
      [&port = *ioport, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                             ^~~~
                                             mask_t
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::membank_builder::wrapped_builder::build()':
../../../../../src/emu/devcb.h:1872:9: error: 'membank' was not declared in this scope
       [&membank = *bank] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
         ^~~~~~~
../../../../../src/emu/devcb.h:1872:9: note: suggested alternative: 'bank'
       [&membank = *bank] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
         ^~~~~~~
         bank
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::membank_builder::build()':
../../../../../src/emu/devcb.h:1930:8: error: 'membank' was not declared in this scope
      [&membank = *bank, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
        ^~~~~~~
../../../../../src/emu/devcb.h:1930:8: note: suggested alternative: 'bank'
      [&membank = *bank, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
        ^~~~~~~
        bank
../../../../../src/emu/devcb.h:1930:25: error: 'exor' was not declared in this scope
      [&membank = *bank, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                         ^~~~
../../../../../src/emu/devcb.h:1930:25: note: suggested alternative: 'exit'
      [&membank = *bank, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                         ^~~~
                         exit
../../../../../src/emu/devcb.h:1930:46: error: 'mask' was not declared in this scope
      [&membank = *bank, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                              ^~~~
../../../../../src/emu/devcb.h:1930:46: note: suggested alternative: 'mask_t'
      [&membank = *bank, exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                              ^~~~
                                              mask_t
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::output_builder::wrapped_builder::build()':
../../../../../src/emu/devcb.h:1969:9: error: 'item' was not declared in this scope
       [&item = m_devbase.machine().output().find_or_create_item(m_tag.c_str(), 0)] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
         ^~~~
../../../../../src/emu/devcb.h:1969:9: note: suggested alternative: 'tm'
       [&item = m_devbase.machine().output().find_or_create_item(m_tag.c_str(), 0)] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
         ^~~~
         tm
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::output_builder::build()':
../../../../../src/emu/devcb.h:2024:8: error: 'item' was not declared in this scope
      [&item = m_devbase.machine().output().find_or_create_item(m_tag.c_str(), 0), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
        ^~~~
../../../../../src/emu/devcb.h:2024:8: note: suggested alternative: 'tm'
      [&item = m_devbase.machine().output().find_or_create_item(m_tag.c_str(), 0), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
        ^~~~
        tm
../../../../../src/emu/devcb.h:2024:83: error: 'exor' was not declared in this scope
      [&item = m_devbase.machine().output().find_or_create_item(m_tag.c_str(), 0), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                   ^~~~
../../../../../src/emu/devcb.h:2024:83: note: suggested alternative: 'exit'
      [&item = m_devbase.machine().output().find_or_create_item(m_tag.c_str(), 0), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                   ^~~~
                                                                                   exit
../../../../../src/emu/devcb.h:2024:104: error: 'mask' was not declared in this scope
      [&item = m_devbase.machine().output().find_or_create_item(m_tag.c_str(), 0), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                                        ^~~~
../../../../../src/emu/devcb.h:2024:104: note: suggested alternative: 'mask_t'
      [&item = m_devbase.machine().output().find_or_create_item(m_tag.c_str(), 0), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                                        ^~~~
                                                                                                        mask_t
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::log_builder::wrapped_builder::build()':
../../../../../src/emu/devcb.h:2063:9: error: 'devbase' was not declared in this scope
       [&devbase = m_devbase, message = std::move(m_message)] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
         ^~~~~~~
../../../../../src/emu/devcb.h:2063:9: note: suggested alternative: 'm_devbase'
       [&devbase = m_devbase, message = std::move(m_message)] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
         ^~~~~~~
         m_devbase
../../../../../src/emu/devcb.h:2063:30: error: 'message' was not declared in this scope
       [&devbase = m_devbase, message = std::move(m_message)] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                              ^~~~~~~
../../../../../src/emu/devcb.h:2063:30: note: suggested alternative: 'm_message'
       [&devbase = m_devbase, message = std::move(m_message)] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                              ^~~~~~~
                              m_message
../../../../../src/emu/devcb.h: In member function 'auto devcb_write<Input, DefaultMask>::log_builder::build()':
../../../../../src/emu/devcb.h:2118:8: error: 'devbase' was not declared in this scope
      [&devbase = m_devbase, message = std::move(m_message), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
        ^~~~~~~
../../../../../src/emu/devcb.h:2118:8: note: suggested alternative: 'm_devbase'
      [&devbase = m_devbase, message = std::move(m_message), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
        ^~~~~~~
        m_devbase
../../../../../src/emu/devcb.h:2118:29: error: 'message' was not declared in this scope
      [&devbase = m_devbase, message = std::move(m_message), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                             ^~~~~~~
../../../../../src/emu/devcb.h:2118:29: note: suggested alternative: 'm_message'
      [&devbase = m_devbase, message = std::move(m_message), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                             ^~~~~~~
                             m_message
../../../../../src/emu/devcb.h:2118:61: error: 'exor' was not declared in this scope
      [&devbase = m_devbase, message = std::move(m_message), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                             ^~~~
../../../../../src/emu/devcb.h:2118:61: note: suggested alternative: 'exit'
      [&devbase = m_devbase, message = std::move(m_message), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                             ^~~~
                                                             exit
../../../../../src/emu/devcb.h:2118:82: error: 'mask' was not declared in this scope
      [&devbase = m_devbase, message = std::move(m_message), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                  ^~~~
../../../../../src/emu/devcb.h:2118:82: note: suggested alternative: 'mask_t'
      [&devbase = m_devbase, message = std::move(m_message), exor = this->exor(), mask = this->mask()] (address_space &space, offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
                                                                                  ^~~~
                                                                                  mask_t
make[2]: *** [../../../../osx_clang/obj/x32/Release/osd_sdl/src/osd/modules/debugger/debugosx.o] Error 1
make[1]: *** [osd_sdl] Error 2
make[1]: *** Waiting for unfinished jobs....
Posted By: Vas Crabb

Re: Compiling SDLmame (0.219) on OSX PPC - 03/15/20 12:33 AM

GCC is getting confused by lambda syntax in Objective-C++ there. It thinks the square bracket introducing the lambda is the start of a method invocation. I don’t know what to do about that. You can hack out the debugger with some strategic #ifdef, but that’s not officially supported.
Posted By: R. Belmont

Re: Compiling SDLmame (0.219) on OSX PPC - 03/15/20 12:19 PM

A newer GCC would help (do MacPorts/Brew still support PPC?)
Posted By: MacBox360

Re: Compiling SDLmame (0.219) on OSX PPC - 03/15/20 11:21 PM

MacPorts has still support for PPC OSX but not everything is aligned with x86/x64 versions of their ports, the maximum GCC version for OSX/PPC is 7.5 and Clang is on hold at 3.4 , I think we hardly will see significat upates other than bugfixes. At present I have encouraged the LeopardPorts mantainer to push SDL 2.0.5 to be usable also on PPC builds, I don't know if this is feasible but 2.0.3 is perfectly working here.
About SDLmame, for me, it would be at least helpful to can exclude the debugger part from compile but I have no idea if simply commenting the lines in the script break something elsewhere, a suggestion here would be appriciated because when you compile on PPC machines, it often requires DAYS before to see a result. At present, to have some results in reasonable time, I have simply instructed the makefile to build the NeoGeo sources only, if it will produce something usable I will extend the build to all the other sources (and I will of course upload the binary to be downloaded from everyone).
Posted By: MacBox360

Re: Compiling SDLmame (0.219) on OSX PPC - 03/17/20 11:46 PM

Well, here are the modifications I have done so far at 0.219 sources in my attempts to have an OSX PPC executable (still not build succefully)

Makefile mods (many libraries were already here from MacPorts)

Code
NOWERROR = 1
USE_SYSTEM_LIB_ASIO = 1
USE_SYSTEM_LIB_EXPAT = 1
USE_SYSTEM_LIB_ZLIB = 1
USE_SYSTEM_LIB_JPEG = 1
USE_SYSTEM_LIB_FLAC = 1
USE_SYSTEM_LIB_LUA = 1
USE_SYSTEM_LIB_SQLITE3 = 1
USE_SYSTEM_LIB_PORTMIDI = 1
USE_SYSTEM_LIB_PORTAUDIO = 1
USE_SYSTEM_LIB_UTF8PROC = 1
USE_SYSTEM_LIB_PUGIXML = 1
OVERRIDE_CC = gcc-mp-7
OVERRIDE_CXX = g++-mp-7
SOURCES = src/mame/drivers/neogeo.cpp


BX switches modifications:

Code
3rdparty/bx/include/bx/platform.h --->   #define BX_CRT_GLIBC  1

3rdparty/bx/include/bx/config.h --->   #	define BX_CONFIG_SUPPORTS_THREADING !(1 \

3rdparty/bx/3drparty/catch/catch.hpp ---> at line 71 replace TARGET_OS_OSX with TARGET_OS_MAC


BGFX switches modifications:

Code
3rdparty/bgfx/3rdparty/khronos/gl/glext.h --> delete (or comment) lines 469 and 470

3rdparty/bgfx/3rdparty/dear-imgui/imgui.cpp --> delete (or comment) lines 8903 and 8904

3rdparty/bgfx/3rdparty/dear-imgui/imgui.cpp --> at line 9484 replace TARGET_OS_OSX with TARGET_OS_MAC


SCRIPTS modifications:

Code
script/src/osd/sdl.lua ---> delete the following part:

if _OPTIONS["targetos"]=="macosx" then
		files {
			MAME_DIR .. "src/osd/modules/debugger/debugosx.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/breakpointsview.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/breakpointsview.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/consoleview.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/consoleview.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/debugcommandhistory.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/debugcommandhistory.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/debugconsole.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/debugconsole.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/debugview.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/debugview.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/debugwindowhandler.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/debugwindowhandler.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/deviceinfoviewer.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/deviceinfoviewer.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/devicesviewer.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/devicesviewer.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/disassemblyview.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/disassemblyviewer.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/disassemblyviewer.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/errorlogview.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/errorlogview.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/disassemblyview.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/errorlogviewer.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/errorlogviewer.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/memoryview.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/memoryview.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/memoryviewer.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/memoryviewer.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/pointsviewer.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/pointsviewer.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/registersview.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/registersview.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/watchpointsview.mm",
			MAME_DIR .. "src/osd/modules/debugger/osx/watchpointsview.h",
			MAME_DIR .. "src/osd/modules/debugger/osx/debugosx.h",
		}
	end


SOURCE modifications:

Code
In all the following drivers (and in them only) I had to multiplicate by 1000 the clocks and then modify the units from MHz to kHz

src/mame/drivers/akkaarrh.cpp ---> static constexpr XTAL MASTER_CLOCK = 12096_kHz_XTAL;

src/mame/drivers/firetrk.cpp ---> static constexpr XTAL MASTER_CLOCK = 12096_kHz_XTAL;

src/mame/drivers/flyball.cpp ---> static constexpr XTAL MASTER_CLOCK  = 12096_kHz_XTAL;

src/mame/drivers/quantum.cpp ---> static constexpr XTAL MASTER_CLOCK = 12096_kHz_XTAL;

src/mame/drivers/quizshow.cpp ---> static constexpr XTAL MASTER_CLOCK  = 12096_kHz_XTAL;

src/mame/drivers/sbrkout.cpp ---> static constexpr XTAL MAIN_CLOCK    = 12096_kHz_XTAL;

src/mame/drivers/tempest.cpp ---> static constexpr XTAL MASTER_CLOCK = 12096_kHz_XTAL;

src/mame/drivers/fp200.cpp ---> static constexpr XTAL MAIN_CLOCK = 6144_kHz_XTAL;

src/mame/drivers/x1.cpp ---> constexpr XTAL VDP_CLOCK    = 42954'545_kHz_XTAL;

src/mame/drivers/osborne1.cpp ---> static constexpr XTAL MAIN_CLOCK = 15974_kHz_XTAL;

src/mame/drivers/zaxxon.cpp ---> static constexpr XTAL MASTER_CLOCK  = 48660_kHz_XTAL;

src/mame/includes/galaxian.h ----> static constexpr XTAL KONAMI_SOUND_CLOCK(14318_kHz_XTAL);


After that the compile went fine until this well know and infamous error:

Code
Compiling src/osd/modules/lib/osdlib_macosx.cpp...
In file included from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/DriverServices.h:32:0,
                 from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:125,
                 from /System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20,
                 from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21,
                 from /System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20,
                 from ../../../../../src/osd/modules/lib/osdlib_macosx.cpp:25:
/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MachineExceptions.h:115:4: error: 'vector' does not name a type; did you mean '__vector'?
    vector unsigned int         v;
    ^~~~~~
    __vector
make[2]: *** [../../../../osx_clang/obj/x32/Release/ocore_sdl/src/osd/modules/lib/osdlib_macosx.o] Error 1
make[1]: *** [ocore_sdl] Error 2
make: *** [macosx_x86] Error 2

Compiling src/osd/modules/font/font_osx.cpp...
In file included from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/DriverServices.h:32:0,
                 from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:125,
                 from /System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20,
                 from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21,
                 from /System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:20,
                 from ../../../../../src/osd/modules/font/font_osx.cpp:16:
/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MachineExceptions.h:115:4: error: 'vector' does not name a type; did you mean '__vector'?
    vector unsigned int         v;
    ^~~~~~
    __vector
make[2]: *** [../../../../osx_clang/obj/x32/Release/osd_sdl/src/osd/modules/font/font_osx.o] Error 1
make[1]: *** [osd_sdl] Error 2
make[1]: *** Waiting for unfinished jobs....


Are there some other mods I need to do to overcome this issue?
Posted By: Vas Crabb

Re: Compiling SDLmame (0.219) on OSX PPC - 03/18/20 01:52 AM

C++ and Altivec C extensions are incompatible because Altivec C extensions make "vector" a qualifier keyword. GCC supports using "__vector" instead to work around this which we use in MAME itself. It's a bit harder to deal with if the system headers are doing it.
Posted By: MacBox360

Re: Compiling SDLmame (0.219) on OSX PPC - 03/18/20 02:28 AM

Thank you! I have just disabled the vector definition in MachineExceptions.h (I will re-enable it once the build finished) and the error is gone! :-) Now let's hope everything will go ahead to the end until further errors. Crossing my fingers...
Posted By: Vas Crabb

Re: Compiling SDLmame (0.219) on OSX PPC - 03/18/20 04:08 AM

Editing a system header file could cause all kinds of breakage. You're very much on your own with this. Removing the "vector" keyword there will change the structure layout, which will break ABI compatibility.
Posted By: MacBox360

Re: Compiling SDLmame (0.219) on OSX PPC - 03/18/20 06:52 AM

So far, the compile didn't go well but I am quite confident to be on the right way. The linker failed to put everything together due to some missing reference between sources, from what I've seen I must review the way I have instructed BX/BGFX to skip the error and the debugger truncation, I will try to make it working instead of cut away the code. A last question: if I replace all the "vector" occurrences in MAME source with "__vector" may I fix at least the "does not name a type" error? In the meantime I have restored the MachineExceptions.h vector declaration
Posted By: MacBox360

Re: Compiling SDLmame (0.219) on OSX PPC - 03/20/20 08:34 PM

Well, I have almost fixed all the compile errors but the linker fails miserably, here is the error:

Code
final section layout:
    __TEXT/__text addr=0x000024C4, size=0x017F6554, fileOffset=0x000014C4, type=1
    __TEXT/__text_cold addr=0x017F8A18, size=0x00020840, fileOffset=0x017F7A18, type=1
    __TEXT/__text_startup addr=0x01819258, size=0x0001BED4, fileOffset=0x01818258, type=1
    __TEXT/__text_cold_coal addr=0x0183512C, size=0x00000EE4, fileOffset=0x0183412C, type=1
    __TEXT/__symbol_stub1 addr=0x01836010, size=0x0004D1B0, fileOffset=0x01835010, type=27
    __TEXT/__cstring addr=0x018831C0, size=0x0006A8CE, fileOffset=0x018821C0, type=12
    __TEXT/__const addr=0x018EDA90, size=0x00158FB5, fileOffset=0x018ECA90, type=0
    __TEXT/__info_plist addr=0x01A46A45, size=0x00000223, fileOffset=0x01A45A45, type=0
    __TEXT/__eh_frame addr=0x01A46C68, size=0x0055A394, fileOffset=0x01A45C68, type=18
    __DATA/__dyld addr=0x01FA1000, size=0x0000001C, fileOffset=0x01FA0000, type=29
    __DATA/__nl_symbol_ptr addr=0x01FA101C, size=0x00008AB0, fileOffset=0x01FA001C, type=28
    __DATA/__la_symbol_ptr addr=0x01FA9ACC, size=0x0001346C, fileOffset=0x01FA8ACC, type=26
    __DATA/__mod_init_func addr=0x01FBCF38, size=0x0000047C, fileOffset=0x01FBBF38, type=32
    __DATA/__data addr=0x01FBD3B8, size=0x0001B128, fileOffset=0x01FBC3B8, type=0
    __DATA/__static_data addr=0x01FD84E0, size=0x0000010F, fileOffset=0x01FD74E0, type=0
    __DATA/__const addr=0x01FD85F0, size=0x000D2530, fileOffset=0x01FD75F0, type=0
    __DATA/__gcc_except_tab addr=0x020AAB20, size=0x000FC305, fileOffset=0x020A9B20, type=0
    __DATA/__cfstring addr=0x021A6E28, size=0x00000090, fileOffset=0x021A5E28, type=16
    __DATA/__bss0 addr=0x021A6EB8, size=0x000108F0, fileOffset=0x00000000, type=24
    __DATA/__pu_bss0 addr=0x021B77A8, size=0x00080000, fileOffset=0x00000000, type=24
    __DATA/__pu_bss4 addr=0x022377B0, size=0x00100014, fileOffset=0x00000000, type=24
    __DATA/__bss3 addr=0x023377C8, size=0x00000598, fileOffset=0x00000000, type=24
    __DATA/__bss4 addr=0x02337D60, size=0x0000A410, fileOffset=0x00000000, type=24
    __DATA/__pu_bss3 addr=0x02342170, size=0x00000020, fileOffset=0x00000000, type=24
    __DATA/__pu_bss2 addr=0x02342190, size=0x000012E8, fileOffset=0x00000000, type=24
    __DATA/__common addr=0x02343478, size=0x0000240C, fileOffset=0x00000000, type=24
    __DATA/__bss1 addr=0x02345884, size=0x000045A0, fileOffset=0x00000000, type=24
    __DATA/__bss2 addr=0x02349E24, size=0x00075650, fileOffset=0x00000000, type=24
    __OBJC/__module_info addr=0x023C0000, size=0x00000120, fileOffset=0x021A6000, type=0
    __OBJC/__message_refs addr=0x023C0120, size=0x00000048, fileOffset=0x021A6120, type=14
    __OBJC/__cls_refs addr=0x023C0168, size=0x00000014, fileOffset=0x021A6168, type=14
    __OBJC/__image_info addr=0x023C017C, size=0x00000008, fileOffset=0x021A617C, type=0
ld: bl PPC branch out of range (25310156 max is +/-16MB): from start (0x000024C4) to _main (0x018258D0) in start from /usr/lib/crt1.10.5.o for architecture ppc
collect2: error: ld returned 1 exit status
make[2]: *** [../../../../../mame] Error 1
make[1]: *** [mame] Error 2
make: *** [macosx_x86] Error 2


I must admit it was an interesting challenge, I have learned a lot looking inside the MAME sources and browsing a lot the web. Not everything is clear (I have no knowledge about this kind of language) but I start to see the structure and rules behind the build process and this was extremely useful in planning the modifications to try.
I will do more experiments in the next days... :-)
© 2020 Forums