Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Errors when trying to make #2598

Closed
chrisformula opened this issue Aug 26, 2017 · 7 comments
Closed

Errors when trying to make #2598

chrisformula opened this issue Aug 26, 2017 · 7 comments

Comments

@chrisformula
Copy link

I get the the following error on OS X Sierra:

Clang 9.0.0 detected
Compiling src/devices/machine/diablo_hd.cpp...
In file included from ../../../../../src/devices/machine/diablo_hd.cpp:1:
In file included from ../../../../../src/emu/emu.h:21:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/list:173:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/memory:628:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:1301:38: error: incomplete type
'hard_disk_file' used in type trait expression
: public integral_constant<bool, __is_abstract(_Tp)> {};
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:1374:39: note: in instantiation of template
class 'std::__1::is_abstract<hard_disk_file>' requested here
!is_abstract<_T2>::value> {};
^
In file included from ../../../../../src/devices/machine/diablo_hd.cpp:1:
In file included from ../../../../../src/emu/emu.h:29:
In file included from ../../../../../src/emu/emucore.h:38:
In file included from /mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/corestr.h:17:
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/strformat.h:961:98: note: in instantiation of template class
'std::__1::is_convertible<unsigned long long, hard_disk_file>' requested here
{ static constexpr bool value = is_non_const_ptr::value && is_unsigned_ptr::value && std::is_convertible<std::make_unsigned_t<std::str...
^
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/strformat.h:968:48: note: in instantiation of template class
'util::detail::format_store_integer<hard_disk_file *>::use_unsigned_cast<hard_disk_file *>' requested here
template static std::enable_if_t<use_unsigned_cast::value, bool> apply(U const &value, std::streamoff data)
^
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/strformat.h:1032:3: note: while substituting deduced
template arguments into function template 'apply' [with U = hard_disk_file *]
format_store_integer::apply(*reinterpret_cast<T const *>(value), data);
^
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/strformat.h:1007:31: note: in instantiation of function
template specialization 'util::detail::format_argument<util::basic_ovectorstream >::static_store_integer<hard_disk_file *>' requested here
, m_store_integer_function(&static_store_integer)
^
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/strformat.h:1156:52: note: (skipping 1 context in backtrace;
use -ftemplate-backtrace-limit=0 to see all)
: std::array<format_argument, Count>({ { format_argument(std::forward(args))... } })
^
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/strformat.h:1176:9: note: in instantiation of function
template specialization 'util::detail::format_argument_pack_impl<util::basic_ovectorstream, 2>::format_argument_pack_impl<char const (&)[36],
int &, hard_disk_file *&>' requested here
return format_argument_pack_impl<Stream, sizeof...(Params)>(std::forward(fmt), std::forward(args)...);
^
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/strformat.h:1662:44: note: in instantiation of function
template specialization 'util::detail::make_format_argument_pack<util::basic_ovectorstream, char const (&)[36], int &, hard_disk_file *&>'
requested here
return detail::stream_format(str, detail::make_format_argument_pack(fmt, std::forward(args)...));
^
In file included from ../../../../../src/devices/machine/diablo_hd.cpp:1:
In file included from ../../../../../src/emu/emu.h:117:
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/emu/device.ipp:48:9: note: in instantiation of function template
specialization 'util::stream_format<util::basic_ovectorstream, char [36], int &, hard_disk_file *&>' requested here
util::stream_format(m_string_buffer, std::forward(fmt), std::forward(args)...);
^
../../../../../src/devices/machine/diablo_hd.cpp:123:3: note: in instantiation of function template specialization 'device_t::logerror<char const (&)[36],
int &, hard_disk_file *&>' requested here
logerror(std::forward(fmt), std::forward(args)...);
^
../../../../../src/devices/machine/diablo_hd.cpp:1363:2: note: in instantiation of function template specialization 'diablo_hd_device::logprintf<char const
(&)[36], int &, hard_disk_file *&>' requested here
LOG_DRIVE(0,"[DHD%u] m_disk : %p\n", m_unit, m_disk);
^
../../../../../src/devices/machine/diablo_hd.cpp:65:47: note: expanded from macro 'LOG_DRIVE'
#define LOG_DRIVE(...) do { if (DIABLO_DEBUG) logprintf(VA_ARGS); } while (0)
^
In file included from ../../../../../src/devices/machine/diablo_hd.cpp:7:
In file included from ../../../../../src/devices/machine/diablo_hd.h:12:
In file included from ../../../../../src/devices/imagedev/diablo.h:12:
../../../../../src/lib/util/harddisk.h:24:8: note: forward declaration of 'hard_disk_file'
struct hard_disk_file;
^
In file included from ../../../../../src/devices/machine/diablo_hd.cpp:1:
In file included from ../../../../../src/emu/emu.h:29:
In file included from ../../../../../src/emu/emucore.h:38:
In file included from /mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/corestr.h:17:
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/strformat.h:1032:3: error: no matching function for call to
'apply'
format_store_integer::apply(*reinterpret_cast<T const *>(value), data);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/strformat.h:1007:31: note: in instantiation of function
template specialization 'util::detail::format_argument<util::basic_ovectorstream >::static_store_integer<hard_disk_file *>' requested here
, m_store_integer_function(&static_store_integer)
^
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/strformat.h:1156:52: note: in instantiation of function
template specialization 'util::detail::format_argument<util::basic_ovectorstream >::format_argument<hard_disk_file *>' requested here
: std::array<format_argument, Count>({ { format_argument(std::forward(args))... } })
^
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/strformat.h:1176:9: note: in instantiation of function
template specialization 'util::detail::format_argument_pack_impl<util::basic_ovectorstream, 2>::format_argument_pack_impl<char const (&)[36],
int &, hard_disk_file *&>' requested here
return format_argument_pack_impl<Stream, sizeof...(Params)>(std::forward(fmt), std::forward(args)...);
^
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/strformat.h:1662:44: note: in instantiation of function
template specialization 'util::detail::make_format_argument_pack<util::basic_ovectorstream, char const (&)[36], int &, hard_disk_file *&>'
requested here
return detail::stream_format(str, detail::make_format_argument_pack(fmt, std::forward(args)...));
^
In file included from ../../../../../src/devices/machine/diablo_hd.cpp:1:
In file included from ../../../../../src/emu/emu.h:117:
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/emu/device.ipp:48:9: note: in instantiation of function template
specialization 'util::stream_format<util::basic_ovectorstream, char [36], int &, hard_disk_file *&>' requested here
util::stream_format(m_string_buffer, std::forward(fmt), std::forward(args)...);
^
../../../../../src/devices/machine/diablo_hd.cpp:123:3: note: in instantiation of function template specialization 'device_t::logerror<char const (&)[36],
int &, hard_disk_file *&>' requested here
logerror(std::forward(fmt), std::forward(args)...);
^
../../../../../src/devices/machine/diablo_hd.cpp:1363:2: note: in instantiation of function template specialization 'diablo_hd_device::logprintf<char const
(&)[36], int &, hard_disk_file *&>' requested here
LOG_DRIVE(0,"[DHD%u] m_disk : %p\n", m_unit, m_disk);
^
../../../../../src/devices/machine/diablo_hd.cpp:65:47: note: expanded from macro 'LOG_DRIVE'
#define LOG_DRIVE(...) do { if (DIABLO_DEBUG) logprintf(VA_ARGS); } while (0)
^
In file included from ../../../../../src/devices/machine/diablo_hd.cpp:1:
In file included from ../../../../../src/emu/emu.h:29:
In file included from ../../../../../src/emu/emucore.h:38:
In file included from /mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/corestr.h:17:
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/strformat.h:968:83: note: candidate template ignored:
substitution failure [with U = hard_disk_file *]
template static std::enable_if_t<use_unsigned_cast::value, bool> apply(U const &value, std::streamoff data)
^
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/strformat.h:973:81: note: candidate template ignored:
substitution failure [with U = hard_disk_file *]
template static std::enable_if_t<use_signed_cast::value, bool> apply(U const &value, std::streamoff data)
^
/mame/build/projects/sdl/mame/gmake-osx-clang/../../../../../src/lib/util/strformat.h:978:73: note: candidate template ignored:
substitution failure [with U = hard_disk_file *]
template static std::enable_if_t<disable::value, bool> apply(U const &value, std::streamoff data)
^
2 errors generated.
make[2]: *** [../../../../osx_clang/obj/x64/Release/src/devices/machine/diablo_hd.o] Error 1
make[1]: *** [optional] Error 2
make: *** [macosx_x64_clang] Error 2

@rb6502
Copy link
Contributor

rb6502 commented Aug 27, 2017

Xcode 9 is not officially supported yet because it's a beta. If you use 8.3.3 (you'll see "Clang 8.1.0 detected") MAME builds and runs fine on Sierra.

@chrisformula
Copy link
Author

Thanks, now I get this error:

PCH file built from a different branch ((clang-900.0.28.1)) than the
compiler ((clang-802.0.42))

How can I rectify this?

@rb6502
Copy link
Contributor

rb6502 commented Aug 27, 2017

'make clean' should clear things up.

@chrisformula
Copy link
Author

Dude Legend!!! Thanks so much

@fxcoudert
Copy link

For what it's worth: Xcode 9 will be released in a few weeks, and the issue is simple to patch: simply move the full definition of hard_disk_file to the relevant header: Homebrew/formula-patches@7ab58e7

@cuavas
Copy link
Member

cuavas commented Sep 7, 2017

I don't think that's the right fix though - it doesn't actually need the definition of the type. It's just trying to print a pointer value, so reinterpret_cast<void const *>(...) should fix it.

cuavas added a commit that referenced this issue Sep 7, 2017
@cuavas
Copy link
Member

cuavas commented Sep 7, 2017

Please try with 72869d5 - it should work around the issue.

belegdol added a commit to belegdol/mame that referenced this issue Oct 2, 2021
Without this change, running examples under XWayland, SDL and vulkan
renderer results in a crash. Credit goes to @pezcode:
bkaradzic/bgfx#2593 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants