{"id":15395350,"url":"https://github.com/cocoa-xu/morelloie","last_synced_at":"2025-10-13T03:45:05.667Z","repository":{"id":208878771,"uuid":"718206120","full_name":"cocoa-xu/morelloie","owner":"cocoa-xu","description":"Unofficial MorelloIE LLVM- and GCC-Toolchain Docker images.","archived":false,"fork":false,"pushed_at":"2024-07-25T09:05:47.000Z","size":18,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-02T02:11:12.345Z","etag":null,"topics":["aarch64c","docker-image","morello"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cocoa-xu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-13T15:50:49.000Z","updated_at":"2024-01-24T18:43:49.000Z","dependencies_parsed_at":"2024-10-19T04:54:58.499Z","dependency_job_id":null,"html_url":"https://github.com/cocoa-xu/morelloie","commit_stats":{"total_commits":12,"total_committers":1,"mean_commits":12.0,"dds":0.0,"last_synced_commit":"8aea4ba5277fb4ea462ba1671a4fad870051cb6a"},"previous_names":["cocoa-xu/morelloie"],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cocoa-xu%2Fmorelloie","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cocoa-xu%2Fmorelloie/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cocoa-xu%2Fmorelloie/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cocoa-xu%2Fmorelloie/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cocoa-xu","download_url":"https://codeload.github.com/cocoa-xu/morelloie/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245944062,"owners_count":20697948,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aarch64c","docker-image","morello"],"created_at":"2024-10-01T15:27:59.381Z","updated_at":"2025-10-13T03:45:00.645Z","avatar_url":"https://github.com/cocoa-xu.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MorelloIE Docker Images\n\nThis repo contains my Dockerfiles for creating some non-official MorelloIE docker images:\n\n- cocoaxu/morelloie-llvm\n- cocoaxu/morelloie-gcc\n\nThey contain the LLVM- and GCC-toolchain for the CHERI system, respectively. You can use them to compile your CHERI programs on your non-CHERI platform.\n\n## Run\nFor example, if your source code is in `/home/user/src`, you can do the following:\n\n```shell\n# using LLVM toolchain with musl libc\n$ docker run -it --rm --volume /home/user/src:/src cocoaxu/morelloie-llvm\n\n# using GCC toolchain with glibc\n$ docker run -it --rm --volume /home/user/src:/src cocoaxu/morelloie-gcc\n```\n\nThen you can compile your CHERI programs inside the container. Inside these Docker images,\nthey both have `morelloie` pre-installed while the CHERI compiler is `clang` and `gcc`,\nrespectively. \n  \nAnd for the LLVM toolchain specificly, the sysroot directory for purecap can be found at \n`/root/musl-sysroot-purecap` while the sysroot directory for hybrid can be found at \n`/root/musl-sysroot-hybrid`, which can be used later when compiling purecap and hybrid Morello programs\nwith `clang`.\n\n- If you're using the LLVM Docker image, ``cocoaxu/morelloie-llvm``, then the \n  CHREI compiler is ``clang``, and we need to specify the target as \n  ``aarch64-linux-musl_purecap`` and the sysroot as ``/root/musl-sysroot-purecap``:\n\n  ```shell\n  $ clang -march=morello \\\n      --target=aarch64-linux-musl_purecap \\\n      --sysroot=/root/musl-sysroot-purecap \\\n      test.c -o test -static\n  ```\n\n- If you're using the GCC Docker image, ``cocoaxu/morelloie-gcc``, then we can compile\n  the program with ``gcc`` and we don't need to specify the target or sysroot:\n\n  ```shell\n  $ gcc -march=morello+c64 -mabi=purecap \\\n      test.c -o test -static\n  ```\n\nAfter the compilation, you need to run the program with ``morelloie``. For example:\n\n```shell\n$ morelloie -- ./test\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcocoa-xu%2Fmorelloie","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcocoa-xu%2Fmorelloie","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcocoa-xu%2Fmorelloie/lists"}