Recently, I've been playing around with getting cross-compilation toolchains created for all the platforms we currently support. This is in its early stages, and we're currently missing toolchains for most platforms -- something that will be addressed as time allows.
As an exercise[1] to remind myself of the magic required to build a cross compilation toolchain from scratch, I started with creating a toolchain[2] capable of building binaries for AmigaOS 3. (Whether the resulting binaries work is a different matter and I'm currently uninterested in finding out one way or another). Given that, I figured that I may as well see how much of the existing AmigaOS 4 frontend builds with it. One trivial compatibility header later, and we get the attached buildlog. Given the totality of my AmigaOS knowledge can be written on the back of a postage stamp, it'd be helpful if people who do have a clue could provide suggestions as to the most sensible way to go about resolving the remaining issues (ideally without introducing too many invasive changes, as I'd rather avoid a maintenance nightmare) J. 1. Amongst other things -- there was clearly an ulterior motive. 2. GCC 4.5.1 + Binutils 2.14 (ugh! old!) + Clib2 + OS 3.9 NDK
M.CONFIG: JPEG (libjpeg) enabled (NETSURF_USE_JPEG := YES) M.CONFIG: JNG/MNG/PNG (libmng) enabled (NETSURF_USE_MNG := YES) M.CONFIG: PDF export (haru) disabled (NETSURF_USE_HARU_PDF := NO) M.CONFIG: glibc internal iconv enabled (NETSURF_USE_LIBICONV_PLUG := YES) M.CONFIG: BMP (libnsbmp) enabled (NETSURF_USE_BMP := YES) M.CONFIG: GIF (libnsgif) enabled (NETSURF_USE_GIF := YES) M.CONFIG: PNG (libpng) enabled (NETSURF_USE_PNG := YES) M.CONFIG: NSSVG (libsvgtiny) disabled (NETSURF_USE_NSSVG := NO) MKDIR: build-Linux-amiga MKDIR: build-Linux-amiga/deps COMPILE: utils/utils.c COMPILE: utils/utf8.c COMPILE: utils/useragent.c COMPILE: utils/url.c COMPILE: utils/talloc.c COMPILE: utils/messages.c COMPILE: utils/log.c COMPILE: utils/locale.c COMPILE: utils/http.c COMPILE: utils/hashtable.c COMPILE: utils/findresource.c COMPILE: utils/filename.c COMPILE: utils/base64.c COMPILE: render/textplain.c COMPILE: render/table.c COMPILE: render/list.c COMPILE: render/layout.c COMPILE: render/imagemap.c COMPILE: render/hubbub_binding.c COMPILE: render/html_redraw.c COMPILE: render/html_interaction.c COMPILE: render/html.c COMPILE: render/form.c COMPILE: render/font.c COMPILE: render/favicon.c COMPILE: render/box_normalise.c COMPILE: render/box_construct.c COMPILE: render/box.c COMPILE: image/webp.c COMPILE: image/svg.c COMPILE: image/rsvg.c COMPILE: image/png.c COMPILE: image/nssprite.c COMPILE: image/mng.c COMPILE: image/jpeg.c COMPILE: image/ico.c COMPILE: image/gif.c COMPILE: image/bmp.c COMPILE: desktop/version.c COMPILE: desktop/tree_url_node.c COMPILE: desktop/tree.c COMPILE: desktop/textinput.c COMPILE: desktop/textarea.c COMPILE: desktop/sslcert.c COMPILE: desktop/selection.c COMPILE: desktop/searchweb.c COMPILE: desktop/search.c COMPILE: desktop/scroll.c COMPILE: desktop/save_text.c COMPILE: desktop/save_pdf/pdf_plotters.c COMPILE: desktop/save_pdf/font_haru.c COMPILE: desktop/save_complete.c COMPILE: desktop/print.c COMPILE: desktop/plot_style.c COMPILE: desktop/options.c COMPILE: desktop/netsurf.c COMPILE: desktop/mouse.c COMPILE: desktop/knockout.c COMPILE: desktop/hotlist.c COMPILE: desktop/history_global_core.c COMPILE: desktop/history_core.c COMPILE: desktop/frames.c COMPILE: desktop/download.c COMPILE: desktop/cookies.c COMPILE: desktop/browser.c COMPILE: css/utils.c COMPILE: css/select.c COMPILE: css/internal.c COMPILE: css/dump.c COMPILE: css/css.c COMPILE: content/urldb.c COMPILE: content/llcache.c COMPILE: content/hlcache.c COMPILE: content/fetchers/fetch_file.c COMPILE: content/fetchers/fetch_data.c COMPILE: content/fetchers/fetch_curl.c COMPILE: content/fetch.c COMPILE: content/dirlist.c COMPILE: content/content.c COMPILE: amiga/utf8.c amiga/utf8.c: In function 'utf8_to_local_encoding': amiga/utf8.c:33:12: error: 'DFCTRL_CHARSET' undeclared (first use in this function) amiga/utf8.c:33:12: note: each undeclared identifier is reported only once for each function it appears in amiga/utf8.c:34:2: warning: implicit declaration of function 'ObtainCharsetInfo' amiga/utf8.c:34:30: error: 'DFCS_NUMBER' undeclared (first use in this function) amiga/utf8.c:34:52: error: 'DFCS_MIMENAME' undeclared (first use in this function) amiga/utf8.c: In function 'utf8_from_local_encoding': amiga/utf8.c:78:12: error: 'DFCTRL_CHARSET' undeclared (first use in this function) amiga/utf8.c:79:30: error: 'DFCS_NUMBER' undeclared (first use in this function) amiga/utf8.c:79:52: error: 'DFCS_MIMENAME' undeclared (first use in this function) COMPILE: amiga/tree.c amiga/tree.c: In function 'ami_tree_resized': amiga/tree.c:145:3: warning: implicit declaration of function 'RefreshSetGadgetAttrs' amiga/tree.c: In function 'ami_tree_drag_icon_show': amiga/tree.c:266:12: warning: assignment discards qualifiers from pointer target type amiga/tree.c:271:3: warning: passing argument 2 of 'ami_drag_icon_show' discards qualifiers from pointer target type ./amiga/drag.h:30:6: note: expected 'char *' but argument is of type 'const char *' amiga/tree.c: In function 'ami_tree_scroller_hook': amiga/tree.c:330:8: error: 'IDCMP_EXTENDEDMOUSE' undeclared (first use in this function) amiga/tree.c:330:8: note: each undeclared identifier is reported only once for each function it appears in amiga/tree.c:331:20: error: 'IMSGCODE_INTUIWHEELDATA' undeclared (first use in this function) amiga/tree.c:335:33: error: dereferencing pointer to incomplete type amiga/tree.c:335:55: error: dereferencing pointer to incomplete type amiga/tree.c: In function 'ami_tree_open': amiga/tree.c:544:6: error: 'IDCMP_EXTENDEDMOUSE' undeclared (first use in this function) amiga/tree.c:561:24: error: 'BVS_DISPLAY' undeclared (first use in this function) amiga/tree.c:631:4: error: 'WINDOW_NewMenu' undeclared (first use in this function) amiga/tree.c: In function 'ami_tree_close': amiga/tree.c:708:48: warning: comparison of distinct pointer types lacks a cast amiga/tree.c: In function 'ami_tree_update_quals': amiga/tree.c:719:2: error: 'WINDOW_Qualifier' undeclared (first use in this function) amiga/tree.c:719:2: warning: initialization from incompatible pointer type amiga/tree.c: In function 'ami_tree_event': amiga/tree.c:993:10: warning: initialization makes integer from pointer without a cast amiga/tree.c:993:10: warning: initialization makes integer from pointer without a cast amiga/tree.c:993:10: warning: initialization makes integer from pointer without a cast COMPILE: amiga/thumbnail.c amiga/thumbnail.c:21:32: fatal error: proto/Picasso96API.h: No such file or directory compilation terminated. COMPILE: amiga/theme.c amiga/theme.c:28:32: fatal error: proto/Picasso96API.h: No such file or directory compilation terminated. COMPILE: amiga/stringview/urlhistory.c COMPILE: amiga/stringview/stringview.c amiga/stringview/stringview.c: In function 'myStringOpenListview': amiga/stringview/stringview.c:71:2: warning: initialization makes integer from pointer without a cast amiga/stringview/stringview.c:82:25: warning: implicit declaration of function 'IDoMethod' amiga/stringview/stringview.c: In function 'myStringSearch': amiga/stringview/stringview.c:150:2: warning: initialization from incompatible pointer type amiga/stringview/stringview.c:169:2: warning: implicit declaration of function 'GetHead' amiga/stringview/stringview.c:169:7: warning: assignment makes pointer from integer without a cast amiga/stringview/stringview.c:202:4: warning: initialization makes integer from pointer without a cast amiga/stringview/stringview.c:216:3: warning: implicit declaration of function 'GetSucc' amiga/stringview/stringview.c:216:8: warning: assignment makes pointer from integer without a cast amiga/stringview/stringview.c:228:2: warning: implicit declaration of function 'RefreshSetGadgetAttrs' amiga/stringview/stringview.c: In function 'myStringClass_OM_New': amiga/stringview/stringview.c:396:2: warning: implicit declaration of function 'IDoSuperMethodA' amiga/stringview/stringview.c:440:3: warning: implicit declaration of function 'ICoerceMethod' amiga/stringview/stringview.c: In function 'myStringClass_GM_HandleInput': amiga/stringview/stringview.c:624:7: warning: initialization from incompatible pointer type amiga/stringview/stringview.c:627:8: warning: initialization makes integer from pointer without a cast amiga/stringview/stringview.c:628:8: warning: initialization makes integer from pointer without a cast amiga/stringview/stringview.c:641:6: warning: initialization from incompatible pointer type amiga/stringview/stringview.c:645:6: warning: initialization from incompatible pointer type amiga/stringview/stringview.c:671:8: error: 'IECLASS_MOUSEWHEEL' undeclared (first use in this function) amiga/stringview/stringview.c:671:8: note: each undeclared identifier is reported only once for each function it appears in amiga/stringview/stringview.c: In function 'MakeStringClass': amiga/stringview/stringview.c:850:29: warning: assignment from incompatible pointer type COMPILE: amiga/sslcert.c COMPILE: amiga/search.c amiga/search.c: In function 'ami_search_event': amiga/search.c:267:5: warning: implicit declaration of function 'RefreshSetGadgetAttrs' COMPILE: amiga/schedule.c amiga/schedule.c: In function 'schedule': amiga/schedule.c:65:2: warning: initialization from incompatible pointer type amiga/schedule.c: In function 'schedule_remove': amiga/schedule.c:95:2: warning: implicit declaration of function 'IsMinListEmpty' amiga/schedule.c:97:17: warning: implicit declaration of function 'GetHead' amiga/schedule.c:101:17: warning: implicit declaration of function 'GetSucc' amiga/schedule.c: In function 'schedule_run': amiga/schedule.c:142:7: warning: initialization from incompatible pointer type COMPILE: amiga/save_pdf.c COMPILE: amiga/save_complete.c amiga/save_complete.c: In function 'save_complete_gui_save': amiga/save_complete.c:75:2: warning: initialization makes integer from pointer without a cast amiga/save_complete.c: In function 'save_complete_htmlSaveFileFormat': amiga/save_complete.c:105:2: warning: initialization makes integer from pointer without a cast COMPILE: amiga/print.c amiga/print.c:33:32: fatal error: proto/Picasso96API.h: No such file or directory compilation terminated. COMPILE: amiga/plotters.c In file included from amiga/plotters.c:20:0: ./amiga/bitmap.h:26:33: fatal error: libraries/Picasso96.h: No such file or directory compilation terminated. COMPILE: amiga/object.c amiga/object.c: In function 'FreeObjList': amiga/object.c:74:2: warning: implicit declaration of function 'IsMinListEmpty' amiga/object.c:75:17: warning: implicit declaration of function 'GetHead' amiga/object.c:79:17: warning: implicit declaration of function 'GetSucc' COMPILE: amiga/misc.c amiga/misc.c: In function 'warn_user': amiga/misc.c:36:2: warning: passing argument 1 of 'ami_utf8_easy' discards qualifiers from pointer target type ./amiga/utf8.h:21:7: note: expected 'char *' but argument is of type 'const char *' amiga/misc.c:40:2: warning: implicit declaration of function 'TimedDosRequesterTags' amiga/misc.c:40:24: error: 'TDR_ImageType' undeclared (first use in this function) amiga/misc.c:40:24: note: each undeclared identifier is reported only once for each function it appears in amiga/misc.c:40:38: error: 'TDRIMAGE_WARNING' undeclared (first use in this function) amiga/misc.c:41:8: error: 'TDR_TitleString' undeclared (first use in this function) amiga/misc.c:42:8: error: 'TDR_GadgetString' undeclared (first use in this function) amiga/misc.c:44:8: error: 'TDR_FormatString' undeclared (first use in this function) amiga/misc.c:45:8: error: 'TDR_Arg1' undeclared (first use in this function) amiga/misc.c:46:8: error: 'TDR_Arg2' undeclared (first use in this function) amiga/misc.c: In function 'die': amiga/misc.c:54:24: error: 'TDR_ImageType' undeclared (first use in this function) amiga/misc.c:54:38: error: 'TDRIMAGE_ERROR' undeclared (first use in this function) amiga/misc.c:55:8: error: 'TDR_TitleString' undeclared (first use in this function) amiga/misc.c:56:8: error: 'TDR_GadgetString' undeclared (first use in this function) amiga/misc.c:58:8: error: 'TDR_FormatString' undeclared (first use in this function) amiga/misc.c:59:8: error: 'TDR_Arg1' undeclared (first use in this function) amiga/misc.c: In function 'path_to_url': amiga/misc.c:115:3: warning: implicit declaration of function 'DevNameFromLock' amiga/misc.c:115:50: error: 'DN_FULLPATH' undeclared (first use in this function) COMPILE: amiga/menu.c amiga/menu.c:25:28: fatal error: dos/anchorpath.h: No such file or directory compilation terminated. COMPILE: amiga/login.c amiga/login.c: In function 'ami_401login_login': amiga/login.c:186:2: warning: implicit declaration of function 'ASPrintf' amiga/login.c:186:11: warning: assignment makes pointer from integer without a cast COMPILE: amiga/iff_dr2d.c COMPILE: amiga/icon.c amiga/icon.c:34:31: fatal error: graphics/blitattr.h: No such file or directory compilation terminated. COMPILE: amiga/hotlist.c COMPILE: amiga/history_local.c amiga/history_local.c: In function 'ami_history_open': amiga/history_local.c:133:3: warning: implicit declaration of function 'RefreshSetGadgetAttrs' amiga/history_local.c: In function 'ami_history_event': amiga/history_local.c:260:9: warning: assignment discards qualifiers from pointer target type amiga/history_local.c:266:6: error: 'GA_HintInfo' undeclared (first use in this function) amiga/history_local.c:266:6: note: each undeclared identifier is reported only once for each function it appears in COMPILE: amiga/history.c COMPILE: amiga/gui_options.c amiga/gui_options.c:24:31: fatal error: proto/application.h: No such file or directory compilation terminated. COMPILE: amiga/gui.c In file included from amiga/gui.c:39:0: ./amiga/bitmap.h:26:33: fatal error: libraries/Picasso96.h: No such file or directory compilation terminated. COMPILE: amiga/font.c amiga/font.c:32:32: fatal error: proto/Picasso96API.h: No such file or directory compilation terminated. COMPILE: amiga/filetype.c amiga/filetype.c: In function 'fetch_filetype': amiga/filetype.c:59:13: warning: initialization discards qualifiers from pointer target type COMPILE: amiga/fetch_mailto.c amiga/fetch_mailto.c:28:27: fatal error: proto/openurl.h: No such file or directory compilation terminated. COMPILE: amiga/drag.c amiga/drag.c:29:31: fatal error: graphics/blitattr.h: No such file or directory compilation terminated. COMPILE: amiga/download.c amiga/download.c:28:31: fatal error: proto/application.h: No such file or directory compilation terminated. COMPILE: amiga/cookies.c COMPILE: amiga/context_menu.c amiga/context_menu.c:22:29: fatal error: proto/popupmenu.h: No such file or directory compilation terminated. COMPILE: amiga/compat.c COMPILE: amiga/clipboard.c In file included from amiga/clipboard.c:28:0: ./amiga/bitmap.h:26:33: fatal error: libraries/Picasso96.h: No such file or directory compilation terminated. COMPILE: amiga/bitmap.c In file included from amiga/bitmap.c:20:0: ./amiga/bitmap.h:26:33: fatal error: libraries/Picasso96.h: No such file or directory compilation terminated. COMPILE: amiga/arexx.c amiga/arexx.c: In function 'ami_arexx_execute': amiga/arexx.c:135:2: warning: implicit declaration of function 'IDoMethod' amiga/arexx.c: In function 'ami_find_tab_gwin': amiga/arexx.c:152:2: warning: implicit declaration of function 'GetHead' amiga/arexx.c:152:7: warning: assignment makes pointer from integer without a cast amiga/arexx.c:157:3: warning: implicit declaration of function 'GetSucc' amiga/arexx.c:157:7: warning: assignment makes pointer from integer without a cast amiga/arexx.c:158:3: warning: initialization makes integer from pointer without a cast amiga/arexx.c: In function 'ami_find_tab_bw': amiga/arexx.c:176:7: warning: assignment makes pointer from integer without a cast amiga/arexx.c:181:7: warning: assignment makes pointer from integer without a cast amiga/arexx.c:182:3: warning: initialization makes integer from pointer without a cast amiga/arexx.c:188:2: warning: return makes integer from pointer without a cast amiga/arexx.c: In function 'ami_find_tab': amiga/arexx.c:197:2: warning: implicit declaration of function 'IsMinListEmpty' amiga/arexx.c: In function 'rx_open': amiga/arexx.c:234:3: warning: initialization from incompatible pointer type amiga/arexx.c: In function 'rx_save': amiga/arexx.c:272:2: warning: implicit declaration of function 'ami_update_pointer' amiga/arexx.c:273:2: warning: implicit declaration of function 'FOpen' amiga/arexx.c:275:18: warning: assignment discards qualifiers from pointer target type amiga/arexx.c:278:3: warning: implicit declaration of function 'FClose' amiga/arexx.c:279:3: warning: initialization makes pointer from integer without a cast
