Giter Site home page Giter Site logo

retro68's People

Contributors

agoode avatar alastairstuart avatar antscode avatar autc04 avatar b- avatar clehner avatar darwinne avatar donbright avatar drjosh9000 avatar easybe avatar fairfieldt avatar jupo42 avatar kristine1975 avatar mackiea avatar maddthesane avatar mcayland avatar mgreiner avatar myon98 avatar na1w avatar pqcraft avatar rhalkyard avatar ryandesign avatar ssalevan avatar thesola10 avatar v3rm0n avatar vyrcossont avatar wezm avatar zanekaminski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

retro68's Issues

bison dependency

bison is required for building Rez. As Rez is optional, this should be optional too, and documented.

Is it possible to use GoLang instead of C?

To put my question into perspective: I come from mostly web-development background with moderate C knowledge.

Writing vintage software for vintage Macintosh seems like an amazing ground to improve knowledge of system software and system architectures. However I believe it would be more future-proof to invest time into advancing knowledge of GoLang by writing vintage Macintosh software, than advancing my moderate C knowledge (or delving into C++ which I believe I am too late to jump into).

How hard is to replace gcc+ with golang compiler within this toolchain?

Build error: cannot find -lretrocrt

I got this after updating 831cbc3..04e7e64 and running a clean build. build-toolchain.sh ends with this output:

-- Check for working C compiler: /home/cel/src/Retro68-build/toolchain/bin/m68k-unknown-elf-gcc -- broken
CMake Error at /usr/share/cmake-3.0/Modules/CMakeTestCCompiler.cmake:61 (message):
  The C compiler
  "/home/cel/src/Retro68-build/toolchain/bin/m68k-unknown-elf-gcc" is not
  able to compile a simple test program.

  It fails with the following output:

   Change Dir: /home/cel/src/Retro68-build/build-target/CMakeFiles/CMakeTmp



  Run Build Command:"/usr/bin/make" "cmTryCompileExec3853313353/fast"

  /usr/bin/make -f CMakeFiles/cmTryCompileExec3853313353.dir/build.make
  CMakeFiles/cmTryCompileExec3853313353.dir/build

  make[1]: Entering directory
  '/home/cel/src/Retro68-build/build-target/CMakeFiles/CMakeTmp'

  /usr/bin/cmake -E cmake_progress_report
  /home/cel/src/Retro68-build/build-target/CMakeFiles/CMakeTmp/CMakeFiles 1

  Building C object
  CMakeFiles/cmTryCompileExec3853313353.dir/testCCompiler.c.obj

  /home/cel/src/Retro68-build/toolchain/bin/m68k-unknown-elf-gcc -o
  CMakeFiles/cmTryCompileExec3853313353.dir/testCCompiler.c.obj -c
  /home/cel/src/Retro68-build/build-target/CMakeFiles/CMakeTmp/testCCompiler.c


  Linking C executable cmTryCompileExec3853313353

  /usr/bin/cmake -E cmake_link_script
  CMakeFiles/cmTryCompileExec3853313353.dir/link.txt --verbose=1

  /home/cel/src/Retro68-build/toolchain/bin/m68k-unknown-elf-gcc
  CMakeFiles/cmTryCompileExec3853313353.dir/testCCompiler.c.obj -o
  cmTryCompileExec3853313353

  /home/cel/src/Retro68-build/toolchain/m68k-unknown-elf/bin/ld.real: cannot
  find -lretrocrt
  /home/cel/src/Retro68-build/toolchain/m68k-unknown-elf/bin/ld.real: cannot
  find -lretrocrt

  collect2: error: ld returned 1 exit status

  CMakeFiles/cmTryCompileExec3853313353.dir/build.make:88: recipe for target
  'cmTryCompileExec3853313353' failed

  make[1]: Leaving directory
  '/home/cel/src/Retro68-build/build-target/CMakeFiles/CMakeTmp'

  Makefile:118: recipe for target 'cmTryCompileExec3853313353/fast' failed

  make[1]: *** [cmTryCompileExec3853313353] Error 1

  make: *** [cmTryCompileExec3853313353/fast] Error 2





  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:19 (project)


-- Configuring incomplete, errors occurred!
See also "/home/cel/src/Retro68-build/build-target/CMakeFiles/CMakeOutput.log".
See also "/home/cel/src/Retro68-build/build-target/CMakeFiles/CMakeError.log".

the proper use of CMAKE_TOOLCHAIN_FILE

Under Raytrace the CMakeLists.txt file says that in order to build 'by itself' you need to do this:

# To use this example as a standalone project using CMake:
# mkdir build
# cd build
# cmake .. -DCMAKE_TOOLCHAIN_FILE=path/to/Retro68-build/toolchain/cmake/retro68.toolchain.cmake
# make

However I have found that this doesn't actually work, due to the add_application being not included properly in this fashion.

I wandered around and found MacHTTP which uses Retro68, and it's CMAKE_TOOLCHAIN_FILE is slightly different, and also seems to work and solve the add_application problem. However it does produce some bizarre cmake 'use policy' warning but ... at least it builds.

 cd ..
 mkdir MacHTTP-build
 cd MacHTTP-build
 cmake ../MacHTTP -DCMAKE_TOOLCHAIN_FILE=<<YOUR_PATH_TO_Retro68-build>>/toolchain/m68k-apple-macos/cmake/retro68.toolchain.cmake

Why does this happen? It appears that the toolchain build system actually creates two separate copies of the retro68.toolchain.cmake file . They appear to be identical,...

 don@serebryanya:~/ray/bin$ find ~/r68bin/ | grep retro68.toolchain.cmake
 /home/don/r68bin/toolchain/m68k-apple-macos/cmake/retro68.toolchain.cmake
 /home/don/r68bin/build-target/cmake/retro68.toolchain.cmake

It seems that the issue is that add_application.cmake is only in one of these places:

 don@serebryanya:~/ray/bin$ find ~/r68bin/ | grep add_app
 /home/don/r68bin/toolchain/m68k-apple-macos/cmake/add_application.cmake

I think that may be the issue... however I am not sure of the best way to 'fix' it as it appears to be rather intricately tied to the build and the way the Samples are also built.

Also I haven't built the PPC toolchain and am not sure of the issues involved if that were enabled.

Thanks

Elf2Mac crash with cpp files and --mac-flat

I've created a sample Control Panel (cdev) with an INIT resource - see attached source.

If I attempt to include a C++ file via add_executable, I get a crash during compilation:

...
[ 85%] Linking CXX executable ControlPanel.flt
collect2 : fatal error : ld terminated with signal 6 [Aborted], core dumped
compilation terminated.
Invalid ref from .data:13bc to .text(std::exception::~exception())+196516
needsJT: false
from addr: 196516, exceptionInfoStart: 0
assertion "sym.section.get() == this" failed: file "/home/AnthonySuper/Retro68/Elf2Mac/Section.cc", line 205, function: void Section::FixRelocs()

Is this fixable, or is is not possible to include C++ files in a flat data file?

ControlPanel.zip

Raytracer sample fails to build

[ 93%] Building C object Samples/Raytracer/CMakeFiles/Raytracer.dir/raytracer.c.obj
In file included from /Users/js/Devel/Retro68/build/toolchain/powerpc-apple-macos/include/Carbon.h:21:0,
from /Users/js/Devel/Retro68/Samples/Raytracer/raytracer.c:27:
/Users/js/Devel/Retro68/build/toolchain/powerpc-apple-macos/include/CoreServices.h:175:18: fatal error: fenv.h: No such file or directory
compilation terminated.
make[2]: *** [Samples/Raytracer/CMakeFiles/Raytracer.dir/raytracer.c.obj] Error 1
make[1]: *** [Samples/Raytracer/CMakeFiles/Raytracer.dir/all] Error 2
make: *** [all] Error 2

Errors about headers: used but never defined / undefined reference

I am trying out Retro68/gcc to build desktop apps. When trying to build MPWTest (which I forked to Retro68Test), I get some compile warnings and linker errors. Perhaps some methods in the headers have to be processed differently? I get similar output when building Browsy, but no such errors or warnings when building Launcher using a similar Makefile.

/opt/Retro68-build/toolchain/bin/m68k-unknown-elf-gcc -O3 -Wno-multichar -c Retro68Test.c -o Retro68Test.o
In file included from Retro68Test.c:5:0:
/home/cel/src/Retro68-build/toolchain/lib/gcc/m68k-unknown-elf/4.7.0/../../../../m68k-unknown-elf/include/MacWindows.h:1803:30: warning: ‘FindWindow’ used but never defined [enabled by default]
In file included from Retro68Test.c:7:0:
/home/cel/src/Retro68-build/toolchain/lib/gcc/m68k-unknown-elf/4.7.0/../../../../m68k-unknown-elf/include/Dialogs.h:810:31: warning: ‘Alert’ used but never defined [enabled by default]
/opt/Retro68-build/toolchain/bin/m68k-unknown-elf-g++ -Wl,-elf2flt -Wl,-q -Wl,-Map=linkmap.txt -Wl,-undefined=consolewrite Retro68Test.o -lretrocrt -o Retro68Test.68k
Retro68Test.o: In function `DoCommand':
Retro68Test.c:(.text+0xc4): undefined reference to `Alert'
Retro68Test.o: In function `RunLoop':
Retro68Test.c:(.text+0x266): undefined reference to `FindWindow'
Retro68Test.o: In function `SetUpMenus':
Retro68Test.c:(.text+0x3cc): undefined reference to `__magic_inline_a937'
Retro68Test.o: In function `Initialize':
Retro68Test.c:(.text+0x45e): undefined reference to `__magic_inline_a937'
collect2: error: ld returned 1 exit status
Makefile:29: recipe for target 'Retro68Test.68k' failed
make: *** [Retro68Test.68k] Error 1

Toolchain fail to compile on Debian (gcc version 7.1.0 (Debian 7.1.0-13))

I get the following error while trying to compile the toolchain:

/home/marlon/Retro68/gcc/gcc/ubsan.c: In function ‘bool ubsan_use_new_style_p(location_t)’:
/home/marlon/Retro68/gcc/gcc/ubsan.c:1474:23: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
       || xloc.file == '\0' || xloc.file[0] == '\xff'
                       ^~~~
Makefile:1085: recipe for target 'ubsan.o' failed
make[2]: *** [ubsan.o] Error 1

Help with LDEF resources

I've been trying to create a custom List Definition (LDEF/CODE resource) for displaying icons in a list, but my compiled app crashes when attempting to access the resource. If I use the standard list definition (i.e. a text label), everything works correctly.

I can put together a simple test app, but I thought I'd first see if you've had any experience with LDEF resources in Retro68?

The process I've been using to create the LDEF resource is as follows:

  1. Create the necessary functions in a standalone app using add_application via CMAKE, then compile
  2. Using Derez in MPW I extract the "Main" CODE resource and rename it to an LDEF
  3. I then add the resulting .r file to my primary app and specify my LDEF resource ID when calling LNew

If I specify zero as the resource ID (i.e. use default text label) it works, but if I specify my custom resource ID it crashes.

Any thoughts?

A4 Worlds in an INIT

Hopefully a quick question: Do I need to worry about A4 Worlds if I'm using your technique of using Global Variables in an INIT?

I've managed to migrate a few INITS to Retro68, and everything appears to be working - but I've blatantly commented out any lines of code that attempt to set an A4 world. It would appear that there are no Macintosh Toolbox functions for dealing with this - only proprietary libraries like Symantec or Metrowerks.

I actually have no idea what an A4 world even is - online documentation seems to be sparse.

console library conflict for RetroPPC and RetroCarbon

in the installation directory, (toolchain/powerpc-apple-macos/), only one version of libRetroConsole.a is installed (the one that has been installed last, usually the carbon version).

This leads to link errors when building standalone projects that require the other version.

pascal function pointers

Procedures such as ModalDialog take a function pointer. In the code examples I have seen, the function is defined with the pascal keyword. In the program I am working on, the return value of the function seems to be getting discarded, which I suspect may be because the function needs to use the pascal calling convention. I tried using __attribute__((stdcall)) but that resulted in assembler errors. Is it possible to use stdcall for functions in this way, where the Toolbox seems to expect a pascal function?

Rez fails to link

I'm having issues trying to link the Rez executable:

cd /Users/.../makestuff/Retro68/build/build-host/Rez && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/Rez.dir/link.txt --verbose=1
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++  --std=c++11 -Wall -g -Wl,-search_paths_first -Wl,-headerpad_max_install_names  CMakeFiles/Rez.dir/Rez.cc.o  -o Rez libRezLib.a ../ResourceFiles/libResourceFiles.a /opt/local/lib/libboost_wave-mt.dylib /opt/local/lib/libboost_filesystem-mt.dylib /opt/local/lib/libboost_system-mt.dylib /opt/local/lib/libboost_thread-mt.dylib /opt/local/lib/libboost_regex-mt.dylib /opt/local/lib/libboost_program_options-mt.dylib /opt/local/lib/libboost_serialization-mt.dylib /opt/local/lib/libboost_chrono-mt.dylib /opt/local/lib/libboost_date_time-mt.dylib /opt/local/lib/libboost_atomic-mt.dylib /Users/.../makestuff/Retro68/build/toolchain/lib/libhfs.a 
Undefined symbols for architecture x86_64:
  "boost::wave::grammars::cpp_grammar_gen<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > >::parse_cpp_grammar(boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > > const&, boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > > const&, boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > const&, bool&, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >&, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> >&)", referenced from:
      boost::wave::impl::pp_iterator_functor<boost::wave::context<std::__1::__wrap_iter<char*>, boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, load_file_to_string_filtered, boost::wave::context_policies::eat_whitespace<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::this_type> >::pp_directive() in libRezLib.a(RezLexer.cc.o)
  "boost::wave::grammars::defined_grammar_gen<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > > >::parse_operator_defined(boost::wave::util::unput_queue_iterator<std::__1::__list_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, void*>, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > > const&, boost::wave::util::unput_queue_iterator<std::__1::__list_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, void*>, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > > const&, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> >&)", referenced from:
      boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > const& boost::wave::util::macromap<boost::wave::context<std::__1::__wrap_iter<char*>, boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, load_file_to_string_filtered, boost::wave::context_policies::eat_whitespace<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::this_type> >::resolve_defined<boost::wave::util::unput_queue_iterator<std::__1::__list_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, void*>, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > >(boost::wave::util::unput_queue_iterator<std::__1::__list_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, void*>, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > >&, boost::wave::util::unput_queue_iterator<std::__1::__list_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, void*>, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > > const&, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> >&) in libRezLib.a(RezLexer.cc.o)
  "boost::wave::grammars::defined_grammar_gen<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > > >::parse_operator_defined(boost::wave::util::unput_queue_iterator<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > > const&, boost::wave::util::unput_queue_iterator<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > > const&, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> >&)", referenced from:
      boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > const& boost::wave::util::macromap<boost::wave::context<std::__1::__wrap_iter<char*>, boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, load_file_to_string_filtered, boost::wave::context_policies::eat_whitespace<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::this_type> >::resolve_defined<boost::wave::util::unput_queue_iterator<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > >(boost::wave::util::unput_queue_iterator<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > >&, boost::wave::util::unput_queue_iterator<boost::wave::cpplexer::lex_iterator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > > >, boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> > > const&, std::__1::list<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::fast_pool_allocator<boost::wave::cpplexer::lex_token<boost::wave::util::file_position<boost::wave::util::flex_string<char, std::__1::char_traits<char>, std::__1::allocator<char>, boost::wave::util::CowString<boost::wave::util::AllocatorStringStorage<char, std::__1::allocator<char> >, char*> > > >, boost::default_user_allocator_new_delete, std::__1::mutex, 32u, 0u> >&) in libRezLib.a(RezLexer.cc.o)

Both Bison and Boost are installed via MacPorts, with Bison being version 3.0.4, and Boost is version 1.65.1 (1.65.1_1 as reported by MacPorts).

App crashes - 'SIZE' resource is ignored

jsontest.zip
I've tried to figure this one out myself but I'm at a loss. With the latest build of Retro68, I'm now getting a strange issue when linking to an external C++ library and also referencing other C++ code in my app.

I created a simple test app, and the issue is highlighted in the cmake file:

cmake_minimum_required(VERSION 2.8)

add_application(JsonTest
	JsonTest.cpp
	size.r
	# jsoncpp.cpp # Un-commenting this file crashes the app on launch - even if there are no code references to it, but only if the below libraries are also linked
)

# If I don't link to these libraries, then the above jsoncpp.cpp file works fine - the app only crashes when both are enabled
target_link_libraries(JsonTest MacHTTP mbedtls mbedx509 mbedcrypto MacTCPHelper)

I've attached a sample app, but it involves building & installing a few dependent libraries (MacTCPHelper, mbedtls-Mac-68k and MacHTTP - in that order)

The only other thing worth mentioning is that on my new PC I've built Retro68 without PPC support.

Hoping you can help?

Some toolbox functions are missing from the prepared headers

... leading to

warning: ‘FindWindow’ used but never defined [enabled by default]

followed by a link error, or, in C++ a compiler error.

Usually, this means that PrepareHeaders.hs could not guess the size of its return value, because it is some typedef.
There are many of these lurking in the headers.

This is easily fixed by adding a line to types.txt to indicate whether that typedef is a Byte, Word, Long or Pointer and re-running PrepareHeaders.hs.

language dialect cxx17 and cmake failure

Thanks for a cool project

Im getting this error at the end of the main toolchain build script

-- Found assembler: /home/don/r86bin/toolchain/bin/m68k-apple-macos-gcc
-- Configuring done
CMake Error in LaunchAPPL/Server/CMakeLists.txt:
Target "LaunchAPPLServer" requires the language dialect "CXX17" (with
compiler extensions), but CMake does not know the compile flags to use to
enable it.

-- Generating done
-- Build files have been written to: /home/don/r86bin/build-target

Broken pre-System 7 disk I/O

Disk I/O doesn't seem to work in System 6. I believe this is because libretro/syscalls.c:120 calls HOpenDF instead of HOpen. Changing it to HOpen allows me to read and write files in System 6.0.8.

My understanding is that HOpenDF was an addition in System 7 that allows the use of filenames starting with a period (see http://web.mit.edu/daveg/Info/mac-programming for reference). Maybe a good solution would be to check for an initial period in the filename, use HOpenDF if one is present and we are on System 7, and if not fail?

Missing types and functions

Working on porting an existing codebase to OS9, just compiled the toolchain from latest git and I'm seeing several missing things such as:

/opt/retro68/powerpc-apple-macos/include/setjmp.h:15:6: error: unknown type name ‘jmp_buf’

I'm guessing this one is due to _JBLEN not being set because __PPC__ seems undefined:

$ powerpc-apple-macos-gcc -E -dM - </dev/null | grep PPC
#define _ARCH_PPC 1

Also:
/opt/retro68/powerpc-apple-macos/include/stdlib.h:74:9: error: unknown type name ‘size_t’; did you mean ‘_ssize_t’?
warning: implicit declaration of function ‘setjmp’; did you mean ‘setbuf’? [-Wimplicit-function-declaration]
warning: implicit declaration of function ‘longjmp’; did you mean ‘log1p’? [-Wimplicit-function-declaration]
warning: implicit declaration of function ‘nanosleep’

Any ideas?

libretro license prevents building non-GPLv3 software

So, the way I understand it, basically everything you build needs libretro. However, libretro seems to be licensed as GPLv3. This basically means that you are not allowed to use Retro68 to compile any software that is not released under the GPLv3.

Would it be possible to switch libretro to either LGPLv3 or add the compiler exception there like is done with libgcc?

Unrecognized option --mac-strip-macsbug

It looks like most, or all of the toolchain compiled successfully but errors out when it gets to the HelloWorld sample.

/Users/tara/Retro68-build/toolchain/lib/gcc/powerpc-apple-macos/6.3.0/../../../../powerpc-apple-macos/bin/ld: unrecognized option '--mac-strip-macsbug'

Host OS: MacOS X Sierra 10.12

--mac-strip-macsbug is broken

The --mac-strip-macsbug option to the linker, which is supposed to save space in 68K code by removing MacsBug symbols (function names), currently does not work; it has been disabled by commit b30c823 due to incompatibility with gcc 7.2.

cdev advice

I'm trying to create a control panel that contains an INIT resource. Currently my control panel is an APPL, created using add_application in cmake. I've been able to add the INIT resource to my application based on your samples.

However the INIT resource is not picked up during startup because the file type of the app is APPL and not cdev.

If I manually change the file type to cdev, then the INIT is picked up - however I believe I need the CODE resource to become a cdev resource also.

Is there any way of achieving this?

Thanks.

Don't compile 68060 code

As it stands, the gcc that the project uses compiles code for the 68060, fidoa, and cpu32. The Macs never had 68060, and the additional code results in code that is unused and additional compile times and disk space.

README installation gives warning in High Sierra

brew install boost --c++11

Installing boost as instructed gives me the following warning:

Warning: boost: this formula has no --c++11 option so it will be ignored!
==> Downloading https://homebrew.bintray.com/bottles/boost-1.67.0_1.high_sierra.
######################################################################## 100.0%
==> Pouring boost-1.67.0_1.high_sierra.bottle.tar.gz
🍺  /usr/local/Cellar/boost/1.67.0_1: 13,506 files, 450.9MB

Support for older System versions

Works great for System 6 and above when using with MPW 3.5 files. However, I tried to run the compiled app on Mac OS 3.2 (Finder 5.3) and got the message "A system error has occurred" with "ID = 10" which indicates that the app attempts to access a non-existent ROM routine or something like that. This happens even if the app only contains a single return; in the main() method, so i guess the problem is somewhere inside the bundled libraries that are meant for newer System versions.

Do you know what to change to make it work with earlier System versions? I am trying to use the Macintosh Programmer Workshop 1.1 files to make it work with older System versions.

PowerPC fails to compile

When building GCC for PowerPC, it errors out:

Retro68/gcc/gcc/function.c:5516:11: error: use of undeclared identifier 'IS_PASCAL_FUNC'
      if (IS_PASCAL_FUNC(TREE_TYPE(current_function_decl), current_function_decl))
          ^

I was able to track it down to commit 9d30413

Some traditional Mac glue code is missing from libretro

Some functions are implemented in proprietary static libraries (without source code) in traditional Mac programming environments, and need to be duplicated for Retro68K.

This will lead to errors like

undefined reference to `FSClose'

The File Manager is probably most severly affected; the PB* and PBH calls are the real interface, whereas the FS* and H* calls are thin wrappers around them.

Functions declared, but symbols missing

A lot of functions are declared in the header, but are actually missing, causing linking to fail, while compilation succeeds. Examples are gettimeofday(), sleep(), usleep() and fcntl(), to name just a few I found.

Since these are part of POSIX and not C99, it's perfectly fine to not have these - but they really shouldn't be declared in the headers then.

PEF support for m68k?

This is more of a feature request than an issue, but is there any plan for PEF m68k support?

Thanks, and keep up the good work.

Jason

Build failure on Linux related to dependencies

Thanks for making this cool project. I am trying to get started using it on my Debian Testing system. Compilation proceeds for a while and then fails. It looks like it is failing to build gcc's documentation. I had to install the texinfo package to get this far. Is there a way to disable building the documentation?

gengtype-lex.c: In function ‘yy_get_next_buffer’:
gengtype-lex.c:1096:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
gengtype-lex.c:1887:3: note: in expansion of macro ‘YY_INPUT’
gcc   -Wno-error -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat   -DHAVE_CONFIG_H -DGENERATOR_FILE  -o build/genhooks \
    build/genhooks.o build/errors.o ../build-x86_64-unknown-linux-gnu/libiberty/libiberty.a
gcc   -Wno-error -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat   -DHAVE_CONFIG_H -DGENERATOR_FILE  -o build/genchecksum \
    build/genchecksum.o ../build-x86_64-unknown-linux-gnu/libiberty/libiberty.a
gcc   -Wno-error -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat   -DHAVE_CONFIG_H -DGENERATOR_FILE  -o build/genenums \
    build/genenums.o build/read-md.o build/errors.o ../build-x86_64-unknown-linux-gnu/libiberty/libiberty.a
gawk -f /home/cel/src/Retro68/gcc/gcc/opt-functions.awk -f /home/cel/src/Retro68/gcc/gcc/opt-read.awk \
       -f /home/cel/src/Retro68/gcc/gcc/optc-save-gen.awk \
       -v header_name="config.h system.h coretypes.h tm.h" < optionlist > options-save.c
build/genhooks "Common Target Hook" \
                                     > tmp-common-target-hooks-def.h
/bin/bash /home/cel/src/Retro68/gcc/gcc/../move-if-change tmp-common-target-hooks-def.h \
                                     common/common-target-hooks-def.h
gawk -f /home/cel/src/Retro68/gcc/gcc/opt-functions.awk -f /home/cel/src/Retro68/gcc/gcc/opt-read.awk \
       -f /home/cel/src/Retro68/gcc/gcc/optc-gen.awk \
       -v header_name="config.h system.h coretypes.h tm.h" < optionlist > options.c
echo timestamp > s-common-target-hooks-def-h
build/genhooks -d \
                /home/cel/src/Retro68/gcc/gcc/doc/tm.texi.in > tmp-tm.texi
/home/cel/src/Retro68/gcc/gcc/doc/cppopts.texi:806: @itemx must follow @item
Makefile:4283: recipe for target 'doc/cpp.info' failed
make[2]: *** [doc/cpp.info] Error 1
make[2]: *** Waiting for unfinished jobs....
case `echo X|tr X '\101'` in \
  A) tr -d '\015' < tmp-tm.texi > tmp2-tm.texi ;; \
  *) tr -d '\r' < tmp-tm.texi > tmp2-tm.texi ;; \
esac
mv tmp2-tm.texi tmp-tm.texi
/bin/bash /home/cel/src/Retro68/gcc/gcc/../move-if-change tmp-tm.texi tm.texi
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3143: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3158: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3215: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3222: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3231: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3268: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3285: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3308: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3343: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3355: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3362: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3400: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3413: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3465: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3478: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3589: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3598: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3610: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3630: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3659: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3679: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3694: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3844: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3851: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3858: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3865: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3872: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3879: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3907: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3917: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3924: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3931: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3983: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:3990: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4089: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4096: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4108: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4124: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4130: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4137: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4143: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4150: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4156: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4162: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4169: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4175: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4182: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4190: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4196: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4202: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4213: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4334: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4349: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4411: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4427: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4437: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4462: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4469: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4476: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4484: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4492: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4527: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4537: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4553: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4571: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4583: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4640: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4657: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4667: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4676: warning: @anchor should not appear in @heading
/home/cel/src/Retro68/gcc/gcc/doc/install.texi:4722: warning: @anchor should not appear in @heading
warning: multiple different help strings for I:
        -I <dir>.       Add <dir> to the end of the main source path
        -I <dir>        Add <dir> to the end of the main include path
warning: multiple different help strings for nostdinc:
        Do not look for source files in standard path
        Do not search standard system include directories (those specified with -isystem will still be used)
/home/cel/src/Retro68/gcc/gcc/doc/gcc.texi:89: warning: @tex should only appear at a line beginning
/home/cel/src/Retro68/gcc/gcc/doc/gcc.texi:89: warning: @end should only appear at a line beginning
/home/cel/src/Retro68/gcc/gcc/doc/gcc.texi:91: warning: @tex should only appear at a line beginning
/home/cel/src/Retro68/gcc/gcc/doc/gcc.texi:91: warning: @end should only appear at a line beginning
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:5180: @itemx must follow @item
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:5328: @itemx must follow @item
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:5332: @itemx must follow @item
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:5343: @itemx must follow @item
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:5347: @itemx must follow @item
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:5392: @itemx must follow @item
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:5422: @itemx must follow @item
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:5434: @itemx must follow @item
/home/cel/src/Retro68/gcc/gcc/doc/cppopts.texi:806: @itemx must follow @item
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:1016: warning: node next `Overall Options' in menu `C Dialect Options' and in sectioning `Invoking G++' differ
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:1016: warning: node up `Overall Options' in menu `Option Summary' and in sectioning `Invoking GCC' differ
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:1481: warning: node prev `C Dialect Options' in menu `Overall Options' and in sectioning `Invoking G++' differ
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:1481: warning: node up `C Dialect Options' in menu `Option Summary' and in sectioning `Invoking GCC' differ
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:1871: warning: node up `C++ Dialect Options' in menu `Option Summary' and in sectioning `Invoking GCC' differ
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:2608: warning: node up `Objective-C and Objective-C++ Dialect Options' in menu `Option Summary' and in sectioning `Invoking GCC' differ
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:2840: warning: node up `Language Independent Options' in menu `Option Summary' and in sectioning `Invoking GCC' differ
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:2888: warning: node up `Warning Options' in menu `Option Summary' and in sectioning `Invoking GCC' differ
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:4690: warning: node up `Debugging Options' in menu `Option Summary' and in sectioning `Invoking GCC' differ
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:6109: warning: node up `Optimize Options' in menu `Option Summary' and in sectioning `Invoking GCC' differ
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:9277: warning: node up `Preprocessor Options' in menu `Option Summary' and in sectioning `Invoking GCC' differ
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:9315: warning: node up `Assembler Options' in menu `Option Summary' and in sectioning `Invoking GCC' differ
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:9338: warning: node up `Link Options' in menu `Option Summary' and in sectioning `Invoking GCC' differ
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:9589: warning: node up `Directory Options' in menu `Option Summary' and in sectioning `Invoking GCC' differ
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:9733: warning: node up `Spec Files' in menu `Option Summary' and in sectioning `Invoking GCC' differ
/home/cel/src/Retro68/gcc/gcc/doc/invoke.texi:10292: warning: node up `Target Options' in menu `Option Summary' and in sectioning `Invoking GCC' differ
/home/cel/src/Retro68/gcc/gcc/doc/implement-c.texi:6: warning: node next `C Implementation' in menu `C Extensions' and in sectioning `C++ Implementation' differ
/home/cel/src/Retro68/gcc/gcc/doc/implement-cxx.texi:6: warning: node next `C++ Implementation' in menu `C++ Extensions' and in sectioning `C Extensions' differ
/home/cel/src/Retro68/gcc/gcc/doc/implement-cxx.texi:6: warning: node prev `C++ Implementation' in menu `C Extensions' and in sectioning `C Implementation' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:8: warning: node next `C Extensions' in menu `C++ Implementation' and in sectioning `C++ Extensions' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:8: warning: node prev `C Extensions' in menu `C Implementation' and in sectioning `C++ Implementation' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:772: warning: node next `Conditionals' in menu `Long Long' and in sectioning `__int128' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:810: warning: node next `__int128' in menu `Complex' and in sectioning `Long Long' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:810: warning: node prev `__int128' in menu `Long Long' and in sectioning `Conditionals' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:821: warning: node next `Long Long' in menu `__int128' and in sectioning `Complex' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:821: warning: node prev `Long Long' in menu `Conditionals' and in sectioning `__int128' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:853: warning: node prev `Complex' in menu `__int128' and in sectioning `Long Long' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:1410: warning: node next `Zero Length' in menu `Variable Length' and in sectioning `Empty Structures' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:1508: warning: node next `Empty Structures' in menu `Variadic Macros' and in sectioning `Variable Length' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:1508: warning: node prev `Empty Structures' in menu `Variable Length' and in sectioning `Zero Length' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:1524: warning: node next `Variable Length' in menu `Empty Structures' and in sectioning `Variadic Macros' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:1524: warning: node prev `Variable Length' in menu `Zero Length' and in sectioning `Empty Structures' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:1605: warning: node prev `Variadic Macros' in menu `Empty Structures' and in sectioning `Variable Length' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:1823: warning: node next `Designated Inits' in menu `Cast to Union' and in sectioning `Case Ranges' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:1967: warning: node next `Case Ranges' in menu `Mixed Declarations' and in sectioning `Cast to Union' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:1967: warning: node prev `Case Ranges' in menu `Cast to Union' and in sectioning `Designated Inits' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:2004: warning: node next `Cast to Union' in menu `Case Ranges' and in sectioning `Mixed Declarations' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:2004: warning: node prev `Cast to Union' in menu `Designated Inits' and in sectioning `Case Ranges' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:2045: warning: node prev `Mixed Declarations' in menu `Case Ranges' and in sectioning `Cast to Union' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:10914: warning: node next `MIPS Loongson Built-in Functions' in menu `Other MIPS Built-in Functions' and in sectioning `picoChip Built-in Functions' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:11317: warning: node next `picoChip Built-in Functions' in menu `PowerPC AltiVec/VSX Built-in Functions' and in sectioning `Other MIPS Built-in Functions' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:11317: warning: node prev `picoChip Built-in Functions' in menu `Other MIPS Built-in Functions' and in sectioning `MIPS Loongson Built-in Functions' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:11353: warning: node next `Other MIPS Built-in Functions' in menu `picoChip Built-in Functions' and in sectioning `PowerPC AltiVec/VSX Built-in Functions' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:11353: warning: node prev `Other MIPS Built-in Functions' in menu `MIPS Loongson Built-in Functions' and in sectioning `picoChip Built-in Functions' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:11365: warning: node prev `PowerPC AltiVec/VSX Built-in Functions' in menu `picoChip Built-in Functions' and in sectioning `Other MIPS Built-in Functions' differ
/home/cel/src/Retro68/gcc/gcc/doc/extend.texi:14826: warning: node prev `C++ Extensions' in menu `C++ Implementation' and in sectioning `C Extensions' differ
/home/cel/src/Retro68/gcc/gcc/doc/trouble.texi:7: warning: node next `Trouble' in menu `Service' and in sectioning `Bugs' differ
/home/cel/src/Retro68/gcc/gcc/doc/trouble.texi:7: warning: node prev `Trouble' in menu `Bug Reporting' and in sectioning `Gcov' differ
/home/cel/src/Retro68/gcc/gcc/doc/trouble.texi:7: warning: node up `Trouble' in menu `Bugs' and in sectioning `Top' differ
/home/cel/src/Retro68/gcc/gcc/doc/service.texi:6: warning: node prev `Service' in menu `Trouble' and in sectioning `Bugs' differ
/home/cel/src/Retro68/gcc/gcc/doc/service.texi:6: warning: node up `Service' in menu `Bugs' and in sectioning `Top' differ
Makefile:4283: recipe for target 'doc/gcc.info' failed
make[2]: *** [doc/gcc.info] Error 1
rm cpp.pod gcc.pod fsf-funding.pod gfdl.pod
make[2]: Leaving directory '/home/cel/src/Retro68-build/gcc-build/gcc'
Makefile:3848: recipe for target 'all-gcc' failed
make[1]: *** [all-gcc] Error 2
make[1]: Leaving directory '/home/cel/src/Retro68-build/gcc-build'
Makefile:865: recipe for target 'all' failed
make: *** [all] Error 2

ResInfo fails to link on OS X Tiger (PPC)

Hello!

I am having trouble building retro68 on Mac OS X Tiger 10.4.11 (PowerPC).
Installed xcode 2.5 and also all the required dependencies using tigerbrew, but I am stuck at this:


[ 66%] Building C object libelf/CMakeFiles/ELF.dir/src/gelf_xlatetom.c.o
[ 66%] Building C object libelf/CMakeFiles/ELF.dir/src/next_prime.c.o
[ 67%] Building C object libelf/CMakeFiles/ELF.dir/src/nlist.c.o
[ 67%] Linking C static library libELF.a
[ 67%] Built target ELF
Scanning dependencies of target ResourceFiles
[ 68%] Building CXX object ResourceFiles/CMakeFiles/ResourceFiles.dir/ResourceFork.cc.o
[ 69%] Building CXX object ResourceFiles/CMakeFiles/ResourceFiles.dir/BinaryIO.cc.o
[ 69%] Building CXX object ResourceFiles/CMakeFiles/ResourceFiles.dir/ResType.cc.o
[ 70%] Building CXX object ResourceFiles/CMakeFiles/ResourceFiles.dir/ResourceFile.cc.o
[ 70%] Linking CXX static library libResourceFiles.a
[ 70%] Built target ResourceFiles
Scanning dependencies of target ResInfo
[ 71%] Building CXX object ResourceFiles/CMakeFiles/ResInfo.dir/ResInfo.cc.o
[ 71%] Linking CXX executable ResInfo
/usr/bin/ld: warning can't open dynamic library: @loader_path/libboost_system-mt.dylib referenced from: /usr/local/lib/libboost_filesystem-mt.dylib (checking for undefined symbols may be affected) (No such file or directory, errno = 2)
/usr/bin/ld: Undefined symbols:
boost::system::system_category() referenced from libboost expected to be defined in @loader_path/libboost_system-mt.dylib
boost::system::generic_category() referenced from libboost expected to be defined in @loader_path/libboost_system-mt.dylib
collect2: error: ld returned 1 exit status
make[2]: *** [ResourceFiles/ResInfo] Error 1
make[1]: *** [ResourceFiles/CMakeFiles/ResInfo.dir/all] Error 2
make: *** [all] Error 2
bluebox:/opt/retro68 alex$

However:

bluebox:/usr/local/lib alex$ file /usr/local/lib/libboost_filesystem-mt.dylib
/usr/local/lib/libboost_filesystem-mt.dylib: symbolic link to `../Cellar/boost/1.58.0/lib/libboost_filesystem-mt.dylib'

bluebox:/usr/local/lib alex$ file ../Cellar/boost/1.58.0/lib/libboost_filesystem-mt.dylib
../Cellar/boost/1.58.0/lib/libboost_filesystem-mt.dylib: Mach-O dynamically linked shared library ppc

The file appears to exist, so I am a bit puzzled about why it is complaining about it being missing.

Do you have any idea how to fix this?
If so, do you know a convenient way to continue the build process where it left off, without having to wait ~5+ hours for the toolchain to build all over again?

Any help would be greatly appreciated! :-)

Versions:

bluebox:/usr/local/lib alex$ gcc-7 --version
gcc-7 (Tigerbrew gcc 7.3.0) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

bluebox:~ alex$ brew install boost --c++11
==> Downloading https://downloads.sourceforge.net/project/boost/boost/1.58.0/boo
######################################################################### 100.0%######################################################################### 100.0%
==> ./bootstrap.sh --prefix=/usr/local/Cellar/boost/1.58.0 --libdir=/usr/local/C
==> ./b2 headers
==> ./b2 --prefix=/usr/local/Cellar/boost/1.58.0 --libdir=/usr/local/Cellar/boos
==> Caveats

Building of Boost.Context and Boost.Coroutine is disabled as they are
only supported on x86_64.
==> Summary
/usr/local/Cellar/boost/1.58.0: 10704 files, 532M, built in 227.5 minutes

Problems with compiling

Hi, I have problems building Retro68. I'm running OS X 10.10.1, Xcode 6.1.1.
The first time I tried building the toolchain I got "fatal error: 'boost/filesystem.hpp' file not found", which I fixed by installing boost with brew. After trying 'build-toolchain.sh' again I got this error after a while:

.....
/usr/bin/install -c -m 755 ld-elf2flt /retro68-build/toolchain/m68k-unknown-elf/bin/ld
/usr/bin/install -c -m 644 elf2flt.ld /retro68-build/toolchain/m68k-unknown-elf/lib/elf2flt.ld
creating cache ./config.cache
checking whether make sets ${MAKE}... yes
checking for gcc... gcc
checking whether the C compiler (gcc ) works... yes
checking whether the C compiler (gcc ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking for a BSD compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking how to run the C preprocessor... gcc -E
checking whether gcc needs -traditional... no
checking for ANSI C header files... yes
checking for unistd.h... yes
checking for fcntl.h... yes
checking for termios.h... yes
checking for sys/ioctl.h... yes
checking for uid_t in sys/types.h... yes
checking for size_t... yes
checking for working const... yes
checking for strdup... yes
checking for strerror... yes
checking for strstr... yes
checking for strtol... yes
checking for setreuid... yes
checking for sys_errlist... yes
updating cache ./config.cache
creating ./config.status
creating hfsck/Makefile
creating linux/Makefile
creating Makefile
creating config.h
configuring in libhfs
running /bin/sh ./configure --prefix=/retro68-build/toolchain/ --enable-devlibs --cache-file=.././config.cache --srcdir=.
loading cache .././config.cache
checking whether make sets ${MAKE}... (cached) yes
checking for gcc... (cached) gcc
checking whether the C compiler (gcc ) works... yes
checking whether the C compiler (gcc ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for a BSD compatible install... (cached) /usr/bin/install -c
checking for ranlib... (cached) ranlib
checking whether ln -s works... yes
checking how to run the C preprocessor... (cached) gcc -E
checking whether gcc needs -traditional... (cached) no
checking for ANSI C header files... (cached) yes
checking for unistd.h... (cached) yes
checking for fcntl.h... (cached) yes
checking for size_t... (cached) yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for working const... (cached) yes
checking for 8-bit clean memcmp... yes
checking for mktime... yes
updating cache .././config.cache
creating ./config.status
creating Makefile
creating config.h
configuring in librsrc
running /bin/sh ./configure --prefix=/retro68-build/toolchain/ --enable-devlibs --cache-file=.././config.cache --srcdir=.
loading cache .././config.cache
checking whether make sets ${MAKE}... (cached) yes
checking for gcc... (cached) gcc
checking whether the C compiler (gcc ) works... yes
checking whether the C compiler (gcc ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for a BSD compatible install... (cached) /usr/bin/install -c
checking for ranlib... (cached) ranlib
checking how to run the C preprocessor... (cached) gcc -E
checking whether gcc needs -traditional... (cached) no
checking for ANSI C header files... (cached) yes
checking for unistd.h... (cached) yes
checking for fcntl.h... (cached) yes
checking for size_t... (cached) yes
checking whether struct tm is in sys/time.h or time.h... (cached) time.h
checking for working const... (cached) yes
checking for mktime... (cached) yes
creating ./config.status
creating Makefile
creating config.h
cd libhfs && /Applications/Xcode.app/Contents/Developer/usr/bin/make
gcc -g -O2 -DHAVE_CONFIG_H -c -o os.o os.c
os.c:86:11: warning: cast to 'void ' from smaller integer type 'int' [-Wint-to-void-pointer-cast]
*priv = (void *) fd;
^
1 warning generated.
gcc -g -O2 -DHAVE_CONFIG_H -c -o data.o data.c
gcc -g -O2 -DHAVE_CONFIG_H -c -o block.o block.c
gcc -g -O2 -DHAVE_CONFIG_H -c -o low.o low.c
gcc -g -O2 -DHAVE_CONFIG_H -c -o medium.o medium.c
gcc -g -O2 -DHAVE_CONFIG_H -c -o file.o file.c
gcc -g -O2 -DHAVE_CONFIG_H -c -o btree.o btree.c
btree.c:444:32: warning: passing 'int *' to parameter of type 'unsigned int *' converts between pointers to integer types with different sign [-Wpointer-sign]
result = n_insert(np, record, reclen);
^~~~~~
./node.h:32:44: note: passing argument to parameter here
int n_insert(node *, byte *, unsigned int *);
^
btree.c:449:37: warning: passing 'int *' to parameter of type 'unsigned int *' converts between pointers to integer types with different sign [-Wpointer-sign]
result = n_insert(np, record, reclen);
^~~~~~
./node.h:32:44: note: passing argument to parameter here
int n_insert(node *, byte *, unsigned int *);
^
btree.c:493:30: warning: passing 'unsigned int *' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign]
if (insertx(&root, newrec, &reclen) == -1)
^~~~~~~
btree.c:412:42: note: passing argument to parameter 'reclen' here
int insertx(node *np, byte *record, int *reclen)
^
3 warnings generated.
gcc -g -O2 -DHAVE_CONFIG_H -c -o node.o node.c
gcc -g -O2 -DHAVE_CONFIG_H -c -o record.o record.c
gcc -g -O2 -DHAVE_CONFIG_H -c -o volume.o volume.c
gcc -g -O2 -DHAVE_CONFIG_H -c -o hfs.o hfs.c
hfs.c:672:45: warning: passing 'unsigned long *' to parameter of type 'long *' converts between pointers to integer types with different sign [-Wpointer-sign]
found = v_resolve(&vol, path, &file->cat, &parid, name, 0);
^~~~~~
./volume.h:57:60: note: passing argument to parameter here
int v_resolve(hfsvol *
, const char , CatDataRec *, long *, char *, node *);
^
hfs.c:743:41: warning: passing 'unsigned long *' to parameter of type 'long *' converts between pointers to integer types with different sign [-Wpointer-sign]
if (v_resolve(&vol, path, &file->cat, &file->parid, file->name, 0) <= 0)
^~~~~~~~~~~~
./volume.h:57:60: note: passing argument to parameter here
int v_resolve(hfsvol *
, const char , CatDataRec *, long *, char *, node *);
^
hfs.c:1037:36: warning: passing 'unsigned long *' to parameter of type 'long *' converts between pointers to integer types with different sign [-Wpointer-sign]
v_resolve(&vol, path, &data, &parid, name, 0) <= 0)
^~~~~~
./volume.h:57:60: note: passing argument to parameter here
int v_resolve(hfsvol *
, const char , CatDataRec *, long *, char *, node *);
^
hfs.c:1116:40: warning: passing 'unsigned long *' to parameter of type 'long *' converts between pointers to integer types with different sign [-Wpointer-sign]
found = v_resolve(&vol, path, &data, &parid, name, 0);
^~~~~~
./volume.h:57:60: note: passing argument to parameter here
int v_resolve(hfsvol *
, const char , CatDataRec *, long *, char *, node *);
^
hfs.c:1148:36: warning: passing 'unsigned long *' to parameter of type 'long *' converts between pointers to integer types with different sign [-Wpointer-sign]
v_resolve(&vol, path, &data, &parid, name, 0) <= 0)
^~~~~~
./volume.h:57:60: note: passing argument to parameter here
int v_resolve(hfsvol *
, const char , CatDataRec *, long *, char *, node *);
^
hfs.c:1198:40: warning: passing 'unsigned long *' to parameter of type 'long *' converts between pointers to integer types with different sign [-Wpointer-sign]
v_resolve(&vol, path, &file.cat, &file.parid, file.name, 0) <= 0)
^~~~~~~~~~~
./volume.h:57:60: note: passing argument to parameter here
int v_resolve(hfsvol *
, const char , CatDataRec *, long *, char *, node *);
^
hfs.c:1273:38: warning: passing 'unsigned long *' to parameter of type 'long *' converts between pointers to integer types with different sign [-Wpointer-sign]
v_resolve(&vol, srcpath, &src, &srcid, srcname, 0) <= 0)
^~~~~~
./volume.h:57:60: note: passing argument to parameter here
int v_resolve(hfsvol *
, const char , CatDataRec *, long *, char *, node *);
^
hfs.c:1279:42: warning: passing 'unsigned long *' to parameter of type 'long *' converts between pointers to integer types with different sign [-Wpointer-sign]
found = v_resolve(&vol, dstpath, &dst, &dstid, dstname, 0);
^~~~~~
./volume.h:57:60: note: passing argument to parameter here
int v_resolve(hfsvol *
, const char _, CatDataRec *, long *, char *, node *);
^
8 warnings generated.
gcc -g -O2 -DHAVE_CONFIG_H -c -o version.o version.c
ar rc libhfs.a os.o data.o block.o low.o medium.o file.o btree.o node.o record.o volume.o hfs.o version.o
ranlib libhfs.a
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o hfsutil.o hfsutil.c
hfsutil.c:292:28: warning: passing 'long *' to parameter of type 'unsigned long *' converts between pointers to integer types with different sign [-Wpointer-sign]
if (hfs_dirinfo(vol, &cwd, name) == -1)
^~~~
libhfs/hfs.h:148:42: note: passing argument to parameter here
int hfs_dirinfo(hfsvol *, unsigned long *, char *);
^
1 warning generated.
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o hcwd.o hcwd.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o hattrib.o hattrib.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o hcd.o hcd.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o hcopy.o hcopy.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o hdel.o hdel.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o hformat.o hformat.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o hls.o hls.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o hmkdir.o hmkdir.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o hmount.o hmount.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o hpwd.o hpwd.c
hpwd.c:55:7: warning: implicitly declaring library function 'strcmp' with type 'int (const char *, const char *)'
if (strcmp(ent->cwd, ":") == 0)
^
hpwd.c:55:7: note: please include the header <string.h> or explicitly provide a declaration for 'strcmp'
1 warning generated.
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o hrename.o hrename.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o hrmdir.o hrmdir.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o humount.o humount.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o hvol.o hvol.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o crc.o crc.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o binhex.o binhex.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o copyin.o copyin.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o copyout.o copyout.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o charset.o charset.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o darray.o darray.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o dlist.o dlist.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o dstring.o dstring.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o glob.o glob.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o suid.o suid.c
gcc -g -O2 -Ilibhfs -DHAVE_CONFIG_H -c -o version.o version.c
gcc -Llibhfs hfsutil.o hcwd.o
hattrib.o hcd.o hcopy.o hdel.o hformat.o hls.o hmkdir.o hmount.o hpwd.o hrename.o hrmdir.o humount.o hvol.o crc.o binhex.o copyin.o copyout.o charset.o darray.o dlist.o dstring.o glob.o suid.o version.o
-lhfs -o hfsutil
ln -f hfsutil hattrib
ln -f hfsutil hcd
ln -f hfsutil hcopy
ln -f hfsutil hdel
ln -f hfsutil hdir
ln -f hfsutil hformat
ln -f hfsutil hls
ln -f hfsutil hmkdir
ln -f hfsutil hmount
ln -f hfsutil hpwd
ln -f hfsutil hrename
ln -f hfsutil hrmdir
ln -f hfsutil humount
ln -f hfsutil hvol
cd librsrc && /Applications/Xcode.app/Contents/Developer/usr/bin/make
gcc -g -O2 -DHAVE_CONFIG_H -c -o data.o data.c
gcc -g -O2 -DHAVE_CONFIG_H -c -o rsrc.o rsrc.c
gcc -g -O2 -DHAVE_CONFIG_H -c -o version.o version.c
ar rc librsrc.a data.o rsrc.o version.o
ranlib librsrc.a
cd libhfs && /Applications/Xcode.app/Contents/Developer/usr/bin/make
make[1]: Nothing to be done for all'. /usr/bin/install -c -m 755 hfsutil "/retro68-build/toolchain//bin/." for file in hattrib hcd hcopy hdel hdir hformat hls hmkdir hmount hpwd hrename hrmdir humount hvol; do \ ln -f "/retro68-build/toolchain//bin/hfsutil" "/retro68-build/toolchain//bin/$file"; \ done rm -f "/retro68-build/toolchain//bin/hfsutil" for file in hfsutils.1 hattrib.1 hcd.1 hcopy.1 hdel.1 hdir.1 hformat.1 hls.1 hmkdir.1 hmount.1 hpwd.1 hrename.1 hrmdir.1 humount.1 hvol.1; do \ /usr/bin/install -c -m 644 doc/man/$file \ "/retro68-build/toolchain//man/man1/basename $file .1.1"; \ done cd librsrc && /Applications/Xcode.app/Contents/Developer/usr/bin/make make[1]: Nothing to be done forall'.
cd libhfs && /Applications/Xcode.app/Contents/Developer/usr/bin/make install
/usr/bin/install -c -m 644 libhfs.a "/retro68-build/toolchain//lib/."
/usr/bin/install -c -m 644 hfs.h "/retro68-build/toolchain//include/."
cd librsrc && /Applications/Xcode.app/Contents/Developer/usr/bin/make install
/usr/bin/install -c -m 644 librsrc.a "/retro68-build/toolchain//lib/."
/usr/bin/install -c -m 644 rsrc.h "/retro68-build/toolchain//include/."
-- Boost version: 1.57.0
-- Found the following Boost libraries:
-- filesystem
-- system
-- Boost version: 1.57.0
-- Found the following Boost libraries:
-- wave
-- filesystem
-- system
-- thread
-- regex
-- program_options
-- Boost version: 1.57.0
-- Found the following Boost libraries:
-- unit_test_framework
-- Configuring done
-- Generating done
-- Build files have been written to: /retro68-build/build-host
System is unknown to cmake, create:
Platform/Retro68 to use this system, please send your config file to [email protected] so it can be added to cmake
Your CMakeCache.txt file was copied to CopyOfCMakeCache.txt. Please send that file to [email protected].
-- Configuring done
-- Generating done
-- Build files have been written to: /retro68-build/build-target
Scanning dependencies of target ResourceFiles
[ 5%] Building CXX object ResourceFiles/CMakeFiles/ResourceFiles.dir/ResourceFile.cc.o
/Retro68/ResourceFiles/ResourceFile.cc:167:7: error: no member named 'cout' in namespace 'std'; did you mean 'count'?
std::cout << "assigned: " << pathstring << " format " << (int)format << "\n";
~~~~~^~~~
count
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/algorithm:1083:1: note: 'count' declared here
count(_InputIterator __first, _InputIterator __last, const _Tp& _value)
^
/Retro68/ResourceFiles/ResourceFile.cc:167:2: error: reference to overloaded function could not be resolved; did you mean to call it?
std::cout << "assigned: " << pathstring << " format " << (int)format << "\n";
^~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/algorithm:1083:1: note: possible target for call
count(_InputIterator __first, _InputIterator __last, const Tp& _value)
^
/Retro68/ResourceFiles/ResourceFile.cc:344:66: warning: implicit conversion from 'double' to 'size_type' (aka 'unsigned long') changes value from
0.31 to 0 [-Wliteral-conversion]
hfsfile *file = hfs_create(vol, (path.stem().string().substr(0.31)).c_str(),
~~~~ ^~~~
1 warning and 2 errors generated.
make[2]: *
* [ResourceFiles/CMakeFiles/ResourceFiles.dir/ResourceFile.cc.o] Error 1
make[1]: *** [ResourceFiles/CMakeFiles/ResourceFiles.dir/all] Error 2
make: *** [all] Error 2
%
%
% brew list
boost cmake gmp libmpc mpfr xz
% /Applications/Xcode.app/Contents/Developer/usr/bin/make —version
GNU Make 3.81
..
This program built for i386-apple-darwin11.3.0
% gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin14.0.0
Thread model: posix
% ls ../Retro68/CIncludes/ | wc -l
321

Incompatibility with Universal Headers 3.1

Originally reported by @marcusnilsen as part of issue #14.

Using Universal Headers 3.1 (1998), we get errors such as:

[ 3%] Building C object libretro/CMakeFiles/retrocrt.dir/start.c.obj
In file included from retro68-build/toolchain/m68k-unknown-elf/include/OSUtils.h:29:0,
from retro68-build/toolchain/m68k-unknown-elf/include/Events.h:22,
from retro68-build/toolchain/m68k-unknown-elf/include/Processes.h:25,
from Retro68/libretro/start.c:23:
retro68-build/toolchain/m68k-unknown-elf/include/MacMemory.h:142:2: error: function ‘CallUserFnProc’ is initialized like a variable
void CallUserFnProc(UserFnUPP routine, void * parameter) = 0x4E91;
^

For some reason, Universal Headers 3.1 doesn't consistently use the ONEWORDINLINE(...) macros for all functions; Retro68 doesn't currently parse the void SomeFunction() = 0xABCD; syntax directly.

Bad destination address

Hi there,

I'm trying to port a screensaver originally written in Think C to Retro68. I've converted the INIT so far, however it's crashing on startup.

I've traced the issue to the patches applied to certain system functions such as SystemTask. When the patched function attempts to call the original system function, it crashes with "Bad destination address".

It must be something to do with the memory allocation of the patches, but I don't really know where to go from here.

Attached is the source and the StdLog from MacsBug. Any help would be much appreciated.

Thanks.

StdLog.txt
BasicBlack.zip

Error building Elf2flt

I'm attempting to build retro68 on PPC Tiger with tigerbrew. Everything went well until the build for elf2flt.

Log attached below. I think I must be missing some system libraries. X Code 2.5 is installed. Any ideas?

configure: creating ./config.status
config.status: creating ld-elf2flt.sh
config.status: creating Makefile
config.status: creating elf2flt.ld
gcc -MM -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -D__EXTENSIONS__=1 -D_ALL_SOURCE=1 -D_GNU_SOURCE=1 -D_POSIX_PTHREAD_SEMANTICS=1 -D_TANDEM_SOURCE=1 -DHAVE_LIBZ=1 -DSTDC_HEADERS=1 -DHAVE_FCNTL_H=1 -DHAVE_UNISTD_H=1 -DHAVE_VPRINTF=1 -DHAVE_STRSIGNAL=1 -DTARGET_m68k -DTARGET_CPU=\"m68k\" -DSYMBOL_PREFIX=\"\" -DBINUTILS_LDSCRIPTDIR=\"/Volumes/Classic/Programming/Retro68k/Retro68-build/toolchain//bin/../m68k-apple-macos/lib\" -DTARGET_ALIAS=\"m68k-apple-macos\" -DNO_GOT_CHECK=1 -DUSE_EMIT_RELOCS=1 -DEMIT_CTOR_DTOR=0 -DALWAYS_RELOC_TEXT=0 -I/Volumes/Classic/Programming/Retro68k/Retro68/elf2flt -I/Volumes/Classic/Programming/Retro68k/Retro68-build/binutils-build/bfd -I/Volumes/Classic/Programming/Retro68k/Retro68-build/binutils-build/include  /Volumes/Classic/Programming/Retro68k/Retro68/elf2flt/*.c > .deps
In file included from /Volumes/Classic/Programming/Retro68k/Retro68/elf2flt/elf2flt.c:49:
/Volumes/Classic/Programming/Retro68k/Retro68-build/binutils-build/bfd/bfd.h:42:22: error: ansidecl.h: No such file or directory
/Volumes/Classic/Programming/Retro68k/Retro68-build/binutils-build/bfd/bfd.h:43:20: error: symcat.h: No such file or directory
/Volumes/Classic/Programming/Retro68k/Retro68/elf2flt/elf2flt.c:50:23: error: libiberty.h: No such file or directory
/Volumes/Classic/Programming/Retro68k/Retro68/elf2flt/elf2flt.c:62:80: error: elf.h: No such file or directory
/Volumes/Classic/Programming/Retro68k/Retro68/elf2flt/flthdr.c:22:23: error: libiberty.h: No such file or directory
/Volumes/Classic/Programming/Retro68k/Retro68/elf2flt/ld-elf2flt.c:26:23: error: libiberty.h: No such file or directory
/Volumes/Classic/Programming/Retro68k/Retro68/elf2flt/stubs.c:7:23: error: libiberty.h: No such file or directory
make: *** [.deps] Error 1

"Unsupported relocation against"

I'm trying to port MilkyTracker to PPC Mac OS 9, and I stumbled upon following error. Not sure if there's something I can do myself to fix this.

==== Building ppui (release_ppc-macos) ====
Graphics_16BIT.cpp
/tmp/cc6fPysU.s: Assembler messages:
/tmp/cc6fPysU.s:338: Error: unsupported relocation against r9
/tmp/cc6fPysU.s:339: Error: unsupported relocation against r10
/tmp/cc6fPysU.s:339: Error: unsupported relocation against r5
/tmp/cc6fPysU.s:341: Error: unsupported relocation against r10
/tmp/cc6fPysU.s:341: Error: unsupported relocation against r9
/tmp/cc6fPysU.s:345: Error: unsupported relocation against r4
/tmp/cc6fPysU.s:345: Error: unsupported relocation against r3
/tmp/cc6fPysU.s:346: Error: unsupported relocation against r4
/tmp/cc6fPysU.s:346: Error: unsupported relocation against r3
/tmp/cc6fPysU.s:347: Error: unsupported relocation against r4
/tmp/cc6fPysU.s:347: Error: unsupported relocation against r3
/tmp/cc6fPysU.s:348: Error: unsupported relocation against r4
/tmp/cc6fPysU.s:348: Error: unsupported relocation against r3
/tmp/cc6fPysU.s:349: Error: unsupported relocation against r10
/tmp/cc6fPysU.s:349: Error: unsupported relocation against r10
/tmp/cc6fPysU.s:350: Error: unsupported relocation against r3
/tmp/cc6fPysU.s:350: Error: unsupported relocation against r3
/tmp/cc6fPysU.s:351: Error: unsupported relocation against r10
/tmp/cc6fPysU.s:351: Error: unsupported relocation against r9
/tmp/cc6fPysU.s:353: Error: unsupported relocation against r11
/tmp/cc6fPysU.s:353: Error: unsupported relocation against r5
/tmp/cc6fPysU.s:355: Error: unsupported relocation against r11
/tmp/cc6fPysU.s:355: Error: unsupported relocation against r9
/tmp/cc6fPysU.s:358: Error: unsupported relocation against r4
/tmp/cc6fPysU.s:358: Error: unsupported relocation against r3
/tmp/cc6fPysU.s:359: Error: unsupported relocation against r11
/tmp/cc6fPysU.s:359: Error: unsupported relocation against r11
/tmp/cc6fPysU.s:360: Error: unsupported relocation against r3
/tmp/cc6fPysU.s:360: Error: unsupported relocation against r3
/tmp/cc6fPysU.s:361: Error: unsupported relocation against r11
/tmp/cc6fPysU.s:361: Error: unsupported relocation against r9
ppui.make:358: recipe for target 'obj/ppc-macos/Release/ppui/Graphics_16BIT.o' failed
make[1]: *** [obj/ppc-macos/Release/ppui/Graphics_16BIT.o] Error 1
Makefile:44: recipe for target 'ppui' failed
make: *** [ppui] Error 2

Rez error: boost::bad_any_cast

I get this error when I call Rez with a file argument (even a non-existent file). Does it look familiar?

$ /opt/Retro68-build/toolchain/bin/Rez src/Browsy.r
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::bad_any_cast> >'
  what():  boost::bad_any_cast: failed conversion using boost::any_cast
Aborted (core dumped)

libstdc++ is huge.

And worse, even trivial uses of it pulls in the entire iostreams and locale implementation; a basic application using the libRetroConsole library (which uses only <vector>, <string> and <unordered_map>) weighs in at > 700KB.

Possible solutions:

  1. Update to the newest version of GCC/libstdc++ and check if this is already fixed - some developer of embedded software might have already complained.

  2. Hack libstdc++ for a fix/workaround.

  3. See if libc++ (https://libcxx.llvm.org/) can be used instead of libstdc++ and if that is more compact.

  4. Implement CODE segmentig; manually move all unused code to a separate CODE resource that is never loaded.

Custom app icon

I'm having problems getting a custom icon to appear in the Finder for my app. I've created all of the required resources (ICN#, BNDL etc), and I can see them all in ResEdit - but the app still displays the standard app icon.

Inside Macintosh mentions something about a hasBundle bit that needs to be set for the finder to actually look for the BNDL resource:

Most development environments provide a simple tool for setting the bundle bit when you create your application.

Any ideas how I can set the hasBundle bit for my Retro68 app?

Many thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.