初始化内容
This commit is contained in:
Vendored
+789
@@ -0,0 +1,789 @@
|
||||
{
|
||||
"projectName": "simde",
|
||||
"projectOwner": "nemequ",
|
||||
"repoType": "github",
|
||||
"repoHost": "https://github.com",
|
||||
"files": [
|
||||
"README.md"
|
||||
],
|
||||
"imageSize": 100,
|
||||
"commit": true,
|
||||
"commitConvention": "none",
|
||||
"contributors": [
|
||||
{
|
||||
"login": "nemequ",
|
||||
"name": "Evan Nemerson",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/1151?v=4",
|
||||
"profile": "https://nemequ.github.io/",
|
||||
"contributions": [
|
||||
"code",
|
||||
"content",
|
||||
"doc",
|
||||
"example",
|
||||
"ideas",
|
||||
"question",
|
||||
"review",
|
||||
"test",
|
||||
"tutorial",
|
||||
"talk",
|
||||
"bug",
|
||||
"infra",
|
||||
"maintenance",
|
||||
"projectManagement"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "mr-c",
|
||||
"name": "Michael R. Crusoe",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/1330696?v=4",
|
||||
"profile": "https://orcid.org/0000-0002-2961-9670",
|
||||
"contributions": [
|
||||
"bug",
|
||||
"code",
|
||||
"eventOrganizing",
|
||||
"fundingFinding",
|
||||
"ideas",
|
||||
"infra",
|
||||
"platform",
|
||||
"test",
|
||||
"maintenance",
|
||||
"projectManagement",
|
||||
"review"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "himanshi18037",
|
||||
"name": "HIMANSHI MATHUR",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/43923076?v=4",
|
||||
"profile": "https://github.com/himanshi18037",
|
||||
"contributions": [
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "masterchef2209",
|
||||
"name": "Hidayat Khan",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/27916352?v=4",
|
||||
"profile": "https://github.com/masterchef2209",
|
||||
"contributions": [
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "rosbif",
|
||||
"name": "rosbif",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/553899?v=4",
|
||||
"profile": "https://github.com/rosbif",
|
||||
"contributions": [
|
||||
"code",
|
||||
"test",
|
||||
"bug",
|
||||
"ideas",
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "junaruga",
|
||||
"name": "Jun Aruga",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/121989?v=4",
|
||||
"profile": "http://junaruga.hatenablog.com/",
|
||||
"contributions": [
|
||||
"code",
|
||||
"ideas",
|
||||
"platform",
|
||||
"infra",
|
||||
"maintenance",
|
||||
"test",
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "marmeladema",
|
||||
"name": "Élie ROUDNINSKI",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/1629419?v=4",
|
||||
"profile": "https://github.com/marmeladema",
|
||||
"contributions": [
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "jsbache",
|
||||
"name": "Jesper Storm Bache",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/7937081?v=4",
|
||||
"profile": "http://www.bache.name",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "jeffdaily",
|
||||
"name": "Jeff Daily",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/904248?v=4",
|
||||
"profile": "https://github.com/jeffdaily",
|
||||
"contributions": [
|
||||
"code",
|
||||
"infra"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "yekm",
|
||||
"name": "Pavel",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/205196?v=4",
|
||||
"profile": "https://github.com/yekm",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "sabarishbollapragada",
|
||||
"name": "Sabarish Bollapragada",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/36379720?v=4",
|
||||
"profile": "https://github.com/sabarishbollapragada",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "gh2o",
|
||||
"name": "Gavin Li",
|
||||
"avatar_url": "https://avatars2.githubusercontent.com/u/371529?v=4",
|
||||
"profile": "http://www.thegavinli.com/",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "betajippity",
|
||||
"name": "Yining Karl Li",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/1057198?v=4",
|
||||
"profile": "http://www.yiningkarlli.com",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "anirbandey303",
|
||||
"name": "Anirban Dey",
|
||||
"avatar_url": "https://avatars1.githubusercontent.com/u/29774651?v=4",
|
||||
"profile": "https://www.facebook.com/anirbandey303",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Un1Gfn",
|
||||
"name": "Darren Ng",
|
||||
"avatar_url": "https://avatars3.githubusercontent.com/u/28521292?v=4",
|
||||
"profile": "https://github.com/Un1Gfn",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "FaresSalem",
|
||||
"name": "FaresSalem",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/7736245?v=4",
|
||||
"profile": "https://github.com/FaresSalem",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "GorePradnyesh",
|
||||
"name": "Pradnyesh Gore",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/843197?v=4",
|
||||
"profile": "https://github.com/GorePradnyesh",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "seanptmaher",
|
||||
"name": "Sean Maher",
|
||||
"avatar_url": "https://avatars0.githubusercontent.com/u/39571964?v=4",
|
||||
"profile": "https://github.com/seanptmaher",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Artoria2e5",
|
||||
"name": "Mingye Wang",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/6459309?v=4",
|
||||
"profile": "https://zh.wikipedia.org/wiki/User:Artoria2e5",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "ngzhian",
|
||||
"name": "Ng Zhi An",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1749303?v=4",
|
||||
"profile": "http://www.ngzhian.com",
|
||||
"contributions": [
|
||||
"code",
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Glitch18",
|
||||
"name": "Atharva Nimbalkar",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/30515829?v=4",
|
||||
"profile": "https://github.com/Glitch18",
|
||||
"contributions": [
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "simba611",
|
||||
"name": "simba611",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/59763921?v=4",
|
||||
"profile": "https://github.com/simba611",
|
||||
"contributions": [
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "ashnewmanjones",
|
||||
"name": "Ashleigh Newman-Jones",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/29983014?v=4",
|
||||
"profile": "https://ashnewmanjones.com",
|
||||
"contributions": [
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "wrv",
|
||||
"name": "Willy R. Vasquez",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/5039686?v=4",
|
||||
"profile": "https://alum.mit.edu/www/wrv/",
|
||||
"contributions": [
|
||||
"code",
|
||||
"maintenance",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "keithw",
|
||||
"name": "Keith Winstein",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/208955?v=4",
|
||||
"profile": "https://cs.stanford.edu/~keithw",
|
||||
"contributions": [
|
||||
"code",
|
||||
"maintenance",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "SoapGentoo",
|
||||
"name": "David Seifert",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/16636962?v=4",
|
||||
"profile": "https://github.com/SoapGentoo",
|
||||
"contributions": [
|
||||
"maintenance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "milot-mirdita",
|
||||
"name": "Milot Mirdita",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/63657?v=4",
|
||||
"profile": "https://mirdita.de",
|
||||
"contributions": [
|
||||
"code",
|
||||
"maintenance",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "aqrit",
|
||||
"name": "aqrit",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/4021602?v=4",
|
||||
"profile": "http://bitpatch.com",
|
||||
"contributions": [
|
||||
"code",
|
||||
"maintenance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "dgazzoni",
|
||||
"name": "Décio Luiz Gazzoni Filho",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/17934171?v=4",
|
||||
"profile": "https://github.com/dgazzoni",
|
||||
"contributions": [
|
||||
"code",
|
||||
"maintenance",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "makise-homura",
|
||||
"name": "Igor Molchanov",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/16463967?v=4",
|
||||
"profile": "http://vk.com/muzzdiez",
|
||||
"contributions": [
|
||||
"code",
|
||||
"maintenance",
|
||||
"platform"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "anrodrig",
|
||||
"name": "Andrew Rodriguez",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/35815808?v=4",
|
||||
"profile": "https://github.com/anrodrig",
|
||||
"contributions": [
|
||||
"code",
|
||||
"maintenance",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Changqing-JING",
|
||||
"name": "Changqing Jing",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/59640930?v=4",
|
||||
"profile": "https://github.com/Changqing-JING",
|
||||
"contributions": [
|
||||
"maintenance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "jpcima",
|
||||
"name": "JP Cimalando",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/17614485?v=4",
|
||||
"profile": "http://jpcima.sdf1.org/",
|
||||
"contributions": [
|
||||
"code",
|
||||
"infra"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "FlyGoat",
|
||||
"name": "Jiaxun Yang",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/5955297?v=4",
|
||||
"profile": "https://flygoat.com/",
|
||||
"contributions": [
|
||||
"code",
|
||||
"platform"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "ktgw0316",
|
||||
"name": "Masahiro Kitagawa",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/3116763?v=4",
|
||||
"profile": "https://github.com/ktgw0316",
|
||||
"contributions": [
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "operasfantom",
|
||||
"name": "Pavel Iatchenii",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/31903947?v=4",
|
||||
"profile": "https://github.com/operasfantom",
|
||||
"contributions": [
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "tommyvct",
|
||||
"name": "Tommy Vercetti",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/7903172?v=4",
|
||||
"profile": "https://tommyvct.tk",
|
||||
"contributions": [
|
||||
"maintenance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "rscohn2",
|
||||
"name": "Robert Cohn",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1936730?v=4",
|
||||
"profile": "https://github.com/rscohn2",
|
||||
"contributions": [
|
||||
"maintenance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "adamnovak",
|
||||
"name": "Adam Novak",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/5062495?v=4",
|
||||
"profile": "https://github.com/adamnovak",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "boris-kuz",
|
||||
"name": "boris-kuz",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/18011434?v=4",
|
||||
"profile": "https://github.com/boris-kuz",
|
||||
"contributions": [
|
||||
"maintenance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Epixu",
|
||||
"name": "Dimo Markov",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1529601?v=4",
|
||||
"profile": "https://github.com/Epixu",
|
||||
"contributions": [
|
||||
"maintenance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "dhbloo",
|
||||
"name": "dblue",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/32353216?v=4",
|
||||
"profile": "https://dhbloo.github.io/",
|
||||
"contributions": [
|
||||
"maintenance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "zekehul",
|
||||
"name": "zekehul",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/8780526?v=4",
|
||||
"profile": "https://github.com/zekehul",
|
||||
"contributions": [
|
||||
"code",
|
||||
"maintenance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "LaurentThomas",
|
||||
"name": "Laurent Thomas",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/40661368?v=4",
|
||||
"profile": "https://open-cells.com",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "maxbachmann",
|
||||
"name": "Max Bachmann",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/44199644?v=4",
|
||||
"profile": "https://github.com/maxbachmann",
|
||||
"contributions": [
|
||||
"doc"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "psaab",
|
||||
"name": "psaab",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/196946?v=4",
|
||||
"profile": "https://github.com/psaab",
|
||||
"contributions": [
|
||||
"maintenance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "sbc100",
|
||||
"name": "Sam Clegg",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/515813?v=4",
|
||||
"profile": "http://superduper.net/",
|
||||
"contributions": [
|
||||
"maintenance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "tlively",
|
||||
"name": "Thomas Lively",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/7121787?v=4",
|
||||
"profile": "https://twitter.com/tlively52",
|
||||
"contributions": [
|
||||
"bug",
|
||||
"ideas",
|
||||
"maintenance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "coderzh",
|
||||
"name": "coderzh",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/329164?v=4",
|
||||
"profile": "http://blog.coderzh.com/",
|
||||
"contributions": [
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "k-dominik",
|
||||
"name": "Dominik Kutra",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/24434157?v=4",
|
||||
"profile": "https://github.com/k-dominik",
|
||||
"contributions": [
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Lithrein",
|
||||
"name": "Lithrein",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/207981?v=4",
|
||||
"profile": "https://github.com/Lithrein",
|
||||
"contributions": [
|
||||
"maintenance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "quyykk",
|
||||
"name": "Nick",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/85879619?v=4",
|
||||
"profile": "https://github.com/quyykk",
|
||||
"contributions": [
|
||||
"maintenance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "thomasdwu",
|
||||
"name": "thomasdwu",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/6819659?v=4",
|
||||
"profile": "https://github.com/thomasdwu",
|
||||
"contributions": [
|
||||
"maintenance"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Remnant44",
|
||||
"name": "Stephen",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/54461740?v=4",
|
||||
"profile": "https://github.com/Remnant44",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "johnplatts",
|
||||
"name": "John Platts",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/28941113?v=4",
|
||||
"profile": "https://github.com/johnplatts",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "tycho",
|
||||
"name": "Steven Noonan",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/29616?v=4",
|
||||
"profile": "https://github.com/tycho",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "p0nce",
|
||||
"name": "p0nce ",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1067485?v=4",
|
||||
"profile": "https://github.com/p0nce",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "pabs3",
|
||||
"name": "Paul Wise",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/328602?v=4",
|
||||
"profile": "https://bonedaddy.net/pabs3/",
|
||||
"contributions": [
|
||||
"bug"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "easyaspi314",
|
||||
"name": "easyaspi314 (Devin)",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/6258309?v=4",
|
||||
"profile": "https://github.com/easyaspi314",
|
||||
"contributions": [
|
||||
"bug",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "JonLiu1993",
|
||||
"name": "JonLiu1993",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/63675417?v=4",
|
||||
"profile": "https://github.com/JonLiu1993",
|
||||
"contributions": [
|
||||
"platform"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Cheney-W",
|
||||
"name": "Cheney Wang",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/38240633?v=4",
|
||||
"profile": "https://github.com/Cheney-W",
|
||||
"contributions": [
|
||||
"platform"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "myd7349",
|
||||
"name": "myd7349 ",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/5435649?v=4",
|
||||
"profile": "http://myd7349.github.io/",
|
||||
"contributions": [
|
||||
"platform"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "chausner",
|
||||
"name": "chausner",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/15180557?v=4",
|
||||
"profile": "https://github.com/chausner",
|
||||
"contributions": [
|
||||
"platform"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "yyctw",
|
||||
"name": "Yi-Yen Chung",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/45251297?v=4",
|
||||
"profile": "https://github.com/yyctw",
|
||||
"contributions": [
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "wewe5215",
|
||||
"name": "Chi-Wei Chu",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/76145143?v=4",
|
||||
"profile": "https://github.com/wewe5215",
|
||||
"contributions": [
|
||||
"code",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "M-HT",
|
||||
"name": "M-HT",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/12173952?v=4",
|
||||
"profile": "https://github.com/M-HT",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "SGSSGene",
|
||||
"name": "Simon Gene Gottlieb",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/456045?v=4",
|
||||
"profile": "https://gottliebtfreitag.de",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "cbielow",
|
||||
"name": "Chris Bielow",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/6008722?v=4",
|
||||
"profile": "http://bsc.fu-berlin.de",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "XiWeiGu",
|
||||
"name": "gu xiwei",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/41367273?v=4",
|
||||
"profile": "https://github.com/XiWeiGu",
|
||||
"contributions": [
|
||||
"platform",
|
||||
"test"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Vineg",
|
||||
"name": "George Vinokhodov",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/1757455?v=4",
|
||||
"profile": "https://github.com/Vineg",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Coeur",
|
||||
"name": "Cœur",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/839992?v=4",
|
||||
"profile": "https://github.com/Coeur",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Proudsalsa",
|
||||
"name": "Florian @Proudsalsa",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/103449548?v=4",
|
||||
"profile": "https://github.com/Proudsalsa",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "thomas-schlichter",
|
||||
"name": "Thomas Schlichter",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/106664923?v=4",
|
||||
"profile": "https://github.com/thomas-schlichter",
|
||||
"contributions": [
|
||||
"bug",
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "AymenQ",
|
||||
"name": "Aymen Qader",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/3706283?v=4",
|
||||
"profile": "https://github.com/AymenQ",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "eric900115",
|
||||
"name": "Eric Su",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/77781328?v=4",
|
||||
"profile": "https://github.com/eric900115",
|
||||
"contributions": [
|
||||
"code",
|
||||
"platform"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "Torinde",
|
||||
"name": "Torinde",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/97228894?v=4",
|
||||
"profile": "https://github.com/Torinde",
|
||||
"contributions": [
|
||||
"bug",
|
||||
"doc",
|
||||
"ideas"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "howjmay",
|
||||
"name": "Yang Hau",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/13924801?v=4",
|
||||
"profile": "https://www.linkedin.com/in/yanghauyuan/",
|
||||
"contributions": [
|
||||
"code",
|
||||
"ideas"
|
||||
]
|
||||
},
|
||||
{
|
||||
"login": "zengdage",
|
||||
"name": "Zhijin Zeng",
|
||||
"avatar_url": "https://avatars.githubusercontent.com/u/16076103?v=4",
|
||||
"profile": "https://github.com/zengdage",
|
||||
"contributions": [
|
||||
"code"
|
||||
]
|
||||
}
|
||||
],
|
||||
"contributorsPerLine": 7
|
||||
}
|
||||
Vendored
+121
@@ -0,0 +1,121 @@
|
||||
environment:
|
||||
MESON_EXE_WRAPPER: "['C:\\Program Files\\OpenCppCoverage\\OpenCppCoverage.exe', '--export_type=cobertura', '--']"
|
||||
CCACHE_MAXSIZE: '500Mi'
|
||||
matrix:
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
|
||||
VCVARSALL: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat
|
||||
PYTHON_DIR: C:\Python311-x64
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat
|
||||
PYTHON_DIR: C:\Python311-x64
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat
|
||||
PYTHON_DIR: C:\Python38-x64
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat
|
||||
PYTHON_DIR: C:\Python38-x64
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
|
||||
VCVARSALL: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat
|
||||
PYTHON_DIR: C:\Python311-x64
|
||||
FLAGS: /arch:AVX
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat
|
||||
PYTHON_DIR: C:\Python311-x64
|
||||
FLAGS: /arch:AVX
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat
|
||||
PYTHON_DIR: C:\Python38-x64
|
||||
FLAGS: /arch:AVX
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat
|
||||
PYTHON_DIR: C:\Python38-x64
|
||||
FLAGS: /arch:AVX
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
|
||||
VCVARSALL: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat
|
||||
PYTHON_DIR: C:\Python311-x64
|
||||
FLAGS: /arch:AVX2
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat
|
||||
PYTHON_DIR: C:\Python311-x64
|
||||
FLAGS: /arch:AVX2
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat
|
||||
PYTHON_DIR: C:\Python38-x64
|
||||
FLAGS: /arch:AVX2
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat
|
||||
PYTHON_DIR: C:\Python38-x64
|
||||
FLAGS: /arch:AVX2
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022
|
||||
VCVARSALL: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat
|
||||
PYTHON_DIR: C:\Python311-x64
|
||||
FLAGS: /arch:AVX512
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat
|
||||
PYTHON_DIR: C:\Python311-x64
|
||||
FLAGS: /arch:AVX512
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
VCVARSALL: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat
|
||||
PYTHON_DIR: C:\Python38-x64
|
||||
FLAGS: /arch:AVX512
|
||||
branches:
|
||||
except:
|
||||
- /^ci/(?!appveyor)(/.+)?/
|
||||
- /^dependabot/(/.+)?/
|
||||
|
||||
platform:
|
||||
- x64
|
||||
cache:
|
||||
- '%SystemDrive%\ccache'
|
||||
init:
|
||||
- pwsh: |
|
||||
$Env:APPVEYOR_SAVE_CACHE_ON_ERROR = 'true'
|
||||
|
||||
on_failure:
|
||||
- appveyor PushArtifact build\meson-logs\meson-log.txt
|
||||
- appveyor PushArtifact build\meson-logs\testlog.txt
|
||||
|
||||
install:
|
||||
- cmd: set PATH=%PYTHON_DIR%;%PYTHON_DIR%\scripts;%PATH%
|
||||
- cmd: pip install --upgrade ninja meson
|
||||
- cmd: choco install opencppcoverage codecov ccache
|
||||
- cmd: call "%VCVARSALL%" amd64
|
||||
|
||||
before_build:
|
||||
- ps: |
|
||||
git submodule -q update --init --recursive
|
||||
if ($ENV:FLAGS -notlike "*ARCH*") {
|
||||
echo "tests will be run"
|
||||
} else {
|
||||
echo "FLAGS is $ENV:FLAGS"
|
||||
}
|
||||
|
||||
build_script:
|
||||
- cmd: |
|
||||
set CCACHE_DIR=%SystemDrive%\ccache
|
||||
set CC=ccache.exe cl.exe
|
||||
set CXX=ccache.exe cl.exe
|
||||
ccache.exe --zero-stats
|
||||
set CFLAGS=/WX /Z7 %FLAGS%
|
||||
set CXXFLAGS=/WX /Z7 %FLAGS%
|
||||
meson --backend=ninja build
|
||||
meson compile -C build --verbose
|
||||
ccache.exe --show-stats
|
||||
test_script:
|
||||
# "meson test -C build" fails due to excessively long command line
|
||||
- ps: |
|
||||
if ($ENV:FLAGS -notlike "*ARCH*") {
|
||||
ninja -C build test
|
||||
} else {
|
||||
echo "skipping test"
|
||||
}
|
||||
|
||||
## This seems to work; data shows up on CodeCov, but it emits an error
|
||||
## which makes AppVeyor thing the whole build failed. Example:
|
||||
## https://ci.appveyor.com/project/quixdb/ci-noise/build/job/e7d1wpt9icu77fn2
|
||||
# after_test:
|
||||
# - ps: |
|
||||
# Invoke-WebRequest -Uri 'https://codecov.io/bash' -OutFile codecov.sh
|
||||
# $env:APPVEYOR="true"
|
||||
# $env:CI="true"
|
||||
# bash codecov.sh -f "run-testsCoverage.xml"
|
||||
Vendored
+82
@@ -0,0 +1,82 @@
|
||||
pool:
|
||||
vmImage: 'ubuntu-22.04'
|
||||
|
||||
trigger:
|
||||
branches:
|
||||
exclude:
|
||||
- master
|
||||
# - ci/*
|
||||
# include:
|
||||
# - ci/azure*
|
||||
|
||||
jobs:
|
||||
- job: clang_analysis
|
||||
timeoutInMinutes: 120
|
||||
variables:
|
||||
CC: clang-14
|
||||
CXX: clang++-14
|
||||
CFLAGS: -Wextra -Werror
|
||||
CXXFLAGS: -Wextra -Werror
|
||||
steps:
|
||||
- script: uname -a && cat /proc/cpuinfo /proc/meminfo
|
||||
displayName: System Information
|
||||
- script: sudo add-apt-repository 'ppa:ubuntu-toolchain-r/test' && sudo apt-get update && sudo apt-get install -y ninja-build ninja-build python3-pip python3-setuptools python3-wheel clang-14 clang-tools-14
|
||||
displayName: Install APT Dependencies
|
||||
- script: pip3 install -v meson==0.55.1
|
||||
displayName: Install pip Dependencies
|
||||
- script: scan-build-14 /home/vsts/.local/bin/meson setup build -Db_sanitize=address,undefined
|
||||
displayName: Configure
|
||||
- script: scan-build-14 ninja -C build -v
|
||||
displayName: Build
|
||||
- script: ninja -C build -v test
|
||||
displayName: Test
|
||||
- task: PublishTestResults@2
|
||||
inputs:
|
||||
testResultsFormat: 'JUnit'
|
||||
testResultsFiles: 'build/meson-logs/testlog.junit.xml'
|
||||
|
||||
- job: gcc_analysis
|
||||
timeoutInMinutes: 120
|
||||
variables:
|
||||
CC: gcc-10
|
||||
CXX: g++-10
|
||||
CFLAGS: -fanalyzer -Wextra -Werror
|
||||
CXXFLAGS: -fanalyzer -Wextra -Werror
|
||||
steps:
|
||||
- script: uname -a && cat /proc/cpuinfo /proc/meminfo
|
||||
displayName: System Information
|
||||
- script: sudo add-apt-repository 'ppa:ubuntu-toolchain-r/test' && sudo apt-get update && sudo apt-get install -y ninja-build ninja-build python3-pip python3-setuptools python3-wheel gcc-10 g++-10
|
||||
displayName: Install APT Dependencies
|
||||
- script: pip3 install meson==0.55.1
|
||||
displayName: Install pip Dependencies
|
||||
- script: /home/vsts/.local/bin/meson setup build -Db_sanitize=address,undefined
|
||||
displayName: Configure
|
||||
- script: ninja -C build -v
|
||||
displayName: Build
|
||||
- script: ninja -C build -v test
|
||||
displayName: Test
|
||||
- task: PublishTestResults@2
|
||||
inputs:
|
||||
testResultsFormat: 'JUnit'
|
||||
testResultsFiles: 'build/meson-logs/testlog.junit.xml'
|
||||
|
||||
# - job: loongson3a
|
||||
# container:
|
||||
# image: debian:unstable
|
||||
# options: "--name ci-container -v /usr/bin/docker:/tmp/docker:ro"
|
||||
# steps:
|
||||
# # https://github.com/Microsoft/azure-pipelines-agent/issues/2043
|
||||
# - script: /tmp/docker exec -t -u 0 ci-container sh -c "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confold" -y install sudo"
|
||||
# displayName: 'Install Sudo in container'
|
||||
# - script: uname -a && cat /proc/cpuinfo /proc/meminfo
|
||||
# displayName: System Information
|
||||
# - script: sudo dpkg --add-architecture mips64el && sudo apt-get update && sudo apt-get install -y ninja-build ninja-build python3-pip python3-setuptools python3-wheel libc6:mips64el gcc-10-mips64el-linux-gnuabi64 g++-10-mips64el-linux-gnuabi64 qemu-user-static
|
||||
# displayName: Install APT Dependencies
|
||||
# - script: pip3 install meson==0.55.1
|
||||
# displayName: Install pip Dependencies
|
||||
# - script: /home/vsts/.local/bin/meson setup build --cross-file=docker/cross-files/loongson-gcc-10.cross
|
||||
# displayName: Configure
|
||||
# - script: ninja -C build -v
|
||||
# displayName: Build
|
||||
# - script: ninja -C build -v test
|
||||
# displayName: Test
|
||||
Vendored
+263
@@ -0,0 +1,263 @@
|
||||
version: 2.1
|
||||
jobs:
|
||||
native-aliases-arm64:
|
||||
resource_class: arm.medium
|
||||
machine:
|
||||
image: ubuntu-2404:current
|
||||
environment:
|
||||
CFLAGS: -Wextra -Werror -march=native -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING
|
||||
CXXFLAGS: -Wextra -Werror -march=native -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
steps:
|
||||
- run: sudo apt-get update && sudo apt-get install -y git ninja-build pipx gcc-14 g++-14 libxml2-utils ccache
|
||||
- checkout
|
||||
- restore_cache:
|
||||
keys:
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}-master
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}
|
||||
- run: cat /proc/cpuinfo /proc/meminfo
|
||||
- run:
|
||||
command: |
|
||||
ccache --set-config=max_size='500M'
|
||||
ccache --set-config=compression=true
|
||||
ccache -p
|
||||
ccache -z
|
||||
- run: pipx install meson==0.55.1
|
||||
- run: ./test/native-aliases.sh
|
||||
- run: |
|
||||
export PATH=/usr/lib/ccache:${PATH}
|
||||
CC="ccache gcc-14" CXX="ccache g++-14" ${HOME}/.local/bin/meson setup build -Db_coverage=true
|
||||
ninja -C build -v -j $(nproc)
|
||||
- run: /usr/bin/ccache -s
|
||||
- save_cache:
|
||||
key: 'ccache-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}-{{ epoch }}'
|
||||
paths: [ "/home/circleci/.cache/ccache" ]
|
||||
when: always
|
||||
- run: ninja -C build -v test
|
||||
|
||||
gcc:
|
||||
resource_class: large
|
||||
docker:
|
||||
- image: debian:testing-slim
|
||||
auth:
|
||||
username: $DOCKERHUB_USERNAME
|
||||
password: $DOCKERHUB_PASSWORD
|
||||
environment:
|
||||
CFLAGS: -Wextra -Werror -march=native
|
||||
CXXFLAGS: -Wextra -Werror -march=native
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
steps:
|
||||
- run: apt-get update && apt-get install -y git ssh ninja-build pipx python3-setuptools python3-wheel gcovr gcc g++ ccache
|
||||
- checkout
|
||||
- restore_cache:
|
||||
keys:
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}-master
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}
|
||||
- run: cat /proc/cpuinfo /proc/meminfo
|
||||
- run:
|
||||
command: |
|
||||
ccache --set-config=max_size='500M'
|
||||
ccache --set-config=compression=true
|
||||
ccache -p
|
||||
ccache -z
|
||||
- run: pipx install meson==0.55.1
|
||||
- run: |
|
||||
export PATH=/usr/lib/ccache:${PATH}
|
||||
CC="ccache gcc" CXX="ccache g++" /root/.local/bin/meson setup build
|
||||
ninja -C build -v -j 5
|
||||
- run: /usr/bin/ccache -s
|
||||
- save_cache:
|
||||
key: 'ccache-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}-{{ epoch }}'
|
||||
paths: [ "/root/.cache/ccache" ]
|
||||
when: always
|
||||
- run: ninja -C build -v test
|
||||
|
||||
portable-memfunctions:
|
||||
resource_class: large
|
||||
docker:
|
||||
- image: debian:testing-slim
|
||||
auth:
|
||||
username: $DOCKERHUB_USERNAME
|
||||
password: $DOCKERHUB_PASSWORD
|
||||
environment:
|
||||
CFLAGS: -Wextra -Werror -march=native -DSIMDE_NO_STDLIB
|
||||
CXXFLAGS: -Wextra -Werror -march=native -DSIMDE_NO_STDLIB
|
||||
CC: gcc
|
||||
CXX: g++
|
||||
steps:
|
||||
- run: apt-get update && apt-get install -y git ssh ninja-build pipx python3-setuptools python3-wheel gcovr gcc g++ ccache
|
||||
- checkout
|
||||
- restore_cache:
|
||||
keys:
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}-master
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}
|
||||
- run: cat /proc/cpuinfo /proc/meminfo
|
||||
- run:
|
||||
command: |
|
||||
ccache --set-config=max_size='500M'
|
||||
ccache --set-config=compression=true
|
||||
ccache -p
|
||||
ccache -z
|
||||
- run: pipx install meson==0.55.1
|
||||
- run: |
|
||||
export PATH=/usr/lib/ccache:${PATH}
|
||||
CC="ccache gcc" CXX="ccache g++" /root/.local/bin/meson setup build
|
||||
ninja -C build -v -j 5
|
||||
- run: /usr/bin/ccache -s
|
||||
- save_cache:
|
||||
key: 'ccache-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}-{{ epoch }}'
|
||||
paths: [ "/root/.cache/ccache" ]
|
||||
when: always
|
||||
- run: ninja -C build -v test
|
||||
|
||||
clang:
|
||||
resource_class: large
|
||||
docker:
|
||||
- image: debian:testing-slim
|
||||
auth:
|
||||
username: $DOCKERHUB_USERNAME
|
||||
password: $DOCKERHUB_PASSWORD
|
||||
environment:
|
||||
CFLAGS: -Weverything -Werror -march=native
|
||||
CXXFLAGS: -Weverything -Werror -march=native
|
||||
steps:
|
||||
- run: apt-get update && apt-get install -y git ssh ninja-build pipx python3-setuptools python3-wheel gcovr clang ccache
|
||||
- checkout
|
||||
- restore_cache:
|
||||
keys:
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}-master
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}
|
||||
- run: cat /proc/cpuinfo /proc/meminfo
|
||||
- run:
|
||||
command: |
|
||||
ccache --set-config=max_size='500M'
|
||||
ccache --set-config=compression=true
|
||||
ccache -p
|
||||
ccache -z
|
||||
- run: pipx install meson==0.55.1
|
||||
- run: |
|
||||
export PATH=/usr/lib/ccache:${PATH}
|
||||
CFLAGS="-Wno-unsafe-buffer-usage" CXXFLAGS="-Wno-unsafe-buffer-usage" CC="ccache clang" CXX="ccache clang++" /root/.local/bin/meson setup build
|
||||
ninja -C build -v -j 5
|
||||
- run: /usr/bin/ccache -s
|
||||
- save_cache:
|
||||
key: 'ccache-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}-{{ epoch }}'
|
||||
paths: [ "/root/.cache/ccache" ]
|
||||
when: always
|
||||
- run: ninja -C build -v test
|
||||
|
||||
i686:
|
||||
resource_class: large
|
||||
docker:
|
||||
- image: debian:testing-slim
|
||||
auth:
|
||||
username: $DOCKERHUB_USERNAME
|
||||
password: $DOCKERHUB_PASSWORD
|
||||
steps:
|
||||
- run: apt-get update && apt-get install -y git ssh ninja-build pipx python3-setuptools python3-wheel gcovr {gcc,g++}-i686-linux-gnu libc6-i386-cross qemu-user-static ccache
|
||||
- checkout
|
||||
- restore_cache:
|
||||
keys:
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}-master
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}
|
||||
- run:
|
||||
name: System Information
|
||||
command: cat /proc/cpuinfo /proc/meminfo
|
||||
- run: dpkg --add-architecture i386
|
||||
- run: pipx install meson==0.55.1
|
||||
- run:
|
||||
command: |
|
||||
ccache --set-config=max_size='500M'
|
||||
ccache --set-config=compression=true
|
||||
ccache -p
|
||||
ccache -z
|
||||
- run: |
|
||||
export PATH=/usr/lib/ccache:${PATH}
|
||||
/root/.local/bin/meson setup build --cross-file docker/cross-files/i686-gcc-qemu-ccache.cross
|
||||
/root/.local/bin/meson compile -C build --verbose -j 5
|
||||
- run: /usr/bin/ccache -s
|
||||
- save_cache:
|
||||
key: 'ccache-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}-{{ epoch }}'
|
||||
paths: [ "/root/.cache/ccache" ]
|
||||
when: always
|
||||
- run: /root/.local/bin/meson test -C build --num-processes 5 --print-errorlogs
|
||||
|
||||
i686-gcc12-O2:
|
||||
resource_class: large
|
||||
docker:
|
||||
- image: debian:stable-slim
|
||||
auth:
|
||||
username: $DOCKERHUB_USERNAME
|
||||
password: $DOCKERHUB_PASSWORD
|
||||
steps:
|
||||
- run: apt-get update && apt-get install -y git ssh ninja-build pipx python3-setuptools python3-wheel gcovr {gcc,g++}-12-i686-linux-gnu libc6-i386-cross qemu-user-static ccache build-essential
|
||||
- checkout
|
||||
- restore_cache:
|
||||
keys:
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}-master
|
||||
- ccache-{{ .Environment.CIRCLE_JOB }}
|
||||
- run:
|
||||
name: System Information
|
||||
command: cat /proc/cpuinfo /proc/meminfo
|
||||
- run: dpkg --add-architecture i386
|
||||
- run: pipx install meson==0.55.1
|
||||
- run:
|
||||
command: |
|
||||
ccache --set-config=max_size='500M'
|
||||
ccache --set-config=compression=true
|
||||
ccache -p
|
||||
ccache -z
|
||||
- run: |
|
||||
export PATH=/usr/lib/ccache:${PATH}
|
||||
/root/.local/bin/meson setup build --cross-file docker/cross-files/i686-gcc-12-qemu-ccache.cross
|
||||
/root/.local/bin/meson compile -C build --verbose -j 5
|
||||
- run: /usr/bin/ccache -s
|
||||
- save_cache:
|
||||
key: 'ccache-{{ .Environment.CIRCLE_JOB }}-{{ .Branch }}-{{ epoch }}'
|
||||
paths: [ "/root/.cache/ccache" ]
|
||||
when: always
|
||||
- run: /root/.local/bin/meson test -C build --num-processes 5 --print-errorlogs
|
||||
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
test:
|
||||
jobs:
|
||||
- native-aliases-arm64:
|
||||
filters:
|
||||
branches:
|
||||
ignore:
|
||||
- /^ci/(?!circleci).*$/
|
||||
- portable-memfunctions:
|
||||
filters:
|
||||
branches:
|
||||
ignore:
|
||||
- /^ci/(?!circleci).*$/
|
||||
- gcc:
|
||||
filters:
|
||||
branches:
|
||||
ignore:
|
||||
- /^ci/(?!circleci).*$/
|
||||
- clang:
|
||||
filters:
|
||||
branches:
|
||||
ignore:
|
||||
- /^ci/(?!circleci).*$/
|
||||
# - i686:
|
||||
# filters:
|
||||
# branches:
|
||||
# ignore:
|
||||
# - /^ci/(?!circleci).*$/
|
||||
- i686-gcc12-O2:
|
||||
filters:
|
||||
branches:
|
||||
ignore:
|
||||
- /^ci/(?!circleci).*$/
|
||||
Vendored
+24
@@ -0,0 +1,24 @@
|
||||
container:
|
||||
image: debian:trixie-slim
|
||||
|
||||
task:
|
||||
name: Sanitizers
|
||||
skip: $BRANCH == "master" || ($BRANCH != 'ci/cirrus' && $BRANCH =~ '^ci/.+')
|
||||
env:
|
||||
CC: clang-17
|
||||
CXX: clang++-17
|
||||
CFLAGS: -Wextra -Werror -march=native
|
||||
CXXFLAGS: -Wextra -Werror -march=native
|
||||
system_info_script:
|
||||
- cat /proc/cpuinfo
|
||||
- cat /proc/meminfo
|
||||
install_dependencies_script:
|
||||
- apt-get update
|
||||
- apt-get install -y ninja-build ninja-build pipx python3-setuptools python3-wheel gcovr clang-17
|
||||
- pipx install meson==0.55.1
|
||||
configure_script:
|
||||
- /root/.local/bin/meson setup build -Db_coverage=true -Db_sanitize=address,undefined -Db_lundef=false
|
||||
build_script:
|
||||
- ninja -C build -v -j 3
|
||||
test_script:
|
||||
- ninja -C build -v test
|
||||
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
*build*
|
||||
docker/build*
|
||||
sde*
|
||||
.git
|
||||
Vendored
+119
@@ -0,0 +1,119 @@
|
||||
# -*- Python -*-
|
||||
# Drone CI Starlark configuration file.
|
||||
# https://docs.drone.io/pipeline/scripting/starlark/
|
||||
# Run `drone starlark convert --stdout` to verify `.drone.star`.
|
||||
|
||||
def main(ctx):
|
||||
jobs = []
|
||||
|
||||
for arch in ['aarch64', 'armv8', 'armv7']:
|
||||
drone_arch = 'arm'
|
||||
if arch == 'aarch64':
|
||||
drone_arch = 'arm64'
|
||||
|
||||
for compiler in ['gcc', 'clang']:
|
||||
cc = compiler
|
||||
cxx = compiler + '++'
|
||||
compiler_flags = []
|
||||
packages = ['ninja-build', 'git-core', 'python3-pip', 'gcovr']
|
||||
|
||||
if arch == 'armv7':
|
||||
compiler_flags.extend(['-march=armv7-a', '-mfpu=neon'])
|
||||
elif arch == 'armv8':
|
||||
compiler_flags.extend(['-march=armv8-a', '-mfpu=neon'])
|
||||
elif arch == 'aarch64':
|
||||
compiler_flags.extend(['-march=armv8-a+simd+crypto+crc'])
|
||||
|
||||
if compiler == 'gcc':
|
||||
cxx = 'g++'
|
||||
compiler_flags.extend(['-Wextra', '-Werror'])
|
||||
packages.extend(['gcc', 'g++'])
|
||||
elif compiler == 'clang':
|
||||
compiler_flags.extend(['-Weverything', '-Werror'])
|
||||
packages.extend(['clang'])
|
||||
|
||||
cflags = ' '.join(compiler_flags)
|
||||
cxxflags = ' '.join(compiler_flags)
|
||||
|
||||
environment = {
|
||||
"CC": cc,
|
||||
"CXX": cxx,
|
||||
"CFLAGS": cflags,
|
||||
"CXXFLAGS": cxxflags,
|
||||
"DEBIAN_FRONTEND": "noninteractive",
|
||||
}
|
||||
|
||||
exclude_branches = ['master']
|
||||
for provider in ['gha', 'cirrus', 'semaphore', 'circleci', 'appveyor', 'azure', 'travis']:
|
||||
exclude_branches.append('ci/' + provider)
|
||||
exclude_branches.append('ci/' + provider + '/**')
|
||||
|
||||
jobs.append({
|
||||
"kind": "pipeline",
|
||||
"type": "docker",
|
||||
"name": compiler + ' ' + arch,
|
||||
"platform": {
|
||||
"os": "linux",
|
||||
"arch": drone_arch
|
||||
},
|
||||
"steps": [
|
||||
{
|
||||
"name": "test",
|
||||
"image": "ubuntu:bionic",
|
||||
"environment": environment,
|
||||
"commands": [
|
||||
"cat /proc/cpuinfo",
|
||||
"echo 'APT::Acquire::Retries \"3\";' > /etc/apt/apt.conf.d/80-retries",
|
||||
"apt-get update -y",
|
||||
"apt-get install -y " + " ".join(packages),
|
||||
"pip3 install meson==0.55.1",
|
||||
"meson build -Db_coverage=true || (cat build/meson-logs/meson-log.txt; false)",
|
||||
"ninja -C build -v test || (cat build/meson-logs/testlog.txt; false)",
|
||||
],
|
||||
}
|
||||
],
|
||||
"trigger": {
|
||||
"branch": {
|
||||
"exclude": exclude_branches
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
# jobs.append({
|
||||
# "kind": "pipeline",
|
||||
# "type": "docker",
|
||||
# "name": "native aliases",
|
||||
# "platform": {
|
||||
# "os": "linux",
|
||||
# "arch": "arm64"
|
||||
# },
|
||||
# "steps": [
|
||||
# {
|
||||
# "name": "test",
|
||||
# "image": "ubuntu:bionic",
|
||||
# "environment": {
|
||||
# "CC": "clang",
|
||||
# "CXX": "clang++",
|
||||
# "CFLAGS": "-march=armv8a+simd+crypto+crc -Weverything -Wextra -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING",
|
||||
# "CXXFLAGS": "-march=armv8a+simd+crypto+crc -Weverything -Wextra -DSIMDE_ENABLE_NATIVE_ALIASES -DSIMDE_NATIVE_ALIASES_TESTING",
|
||||
# "DEBIAN_FRONTEND": "noninteractive",
|
||||
# },
|
||||
# "commands": [
|
||||
# "cat /proc/cpuinfo",
|
||||
# "apt-get update -y",
|
||||
# "apt-get install -y " + " ".join(['ninja-build', 'git-core', 'python3-pip', 'gcovr', 'clang', 'curl']),
|
||||
# "pip3 install meson==0.55.1",
|
||||
# "(cd test && sh -x ./native-aliases.sh)",
|
||||
# "meson build -Db_coverage=true",
|
||||
# "ninja -C build -v test",
|
||||
# ],
|
||||
# },
|
||||
# ],
|
||||
# "trigger": {
|
||||
# "branch": {
|
||||
# "exclude": exclude_branches
|
||||
# }
|
||||
# }
|
||||
# })
|
||||
|
||||
return jobs
|
||||
Vendored
+18
@@ -0,0 +1,18 @@
|
||||
# Configuration file for EditorConfig
|
||||
# More information is available under http://EditorConfig.org
|
||||
|
||||
# Ignore any other files further up in the file system
|
||||
root = true
|
||||
|
||||
# Configuration for all files
|
||||
[*]
|
||||
# Enforce Unix style line endings (\n only)
|
||||
end_of_line = lf
|
||||
# Always end files with a blank line
|
||||
insert_final_newline = true
|
||||
# Force space characters for indentation
|
||||
indent_style = space
|
||||
# Always indent by 2 characters
|
||||
indent_size = 2
|
||||
# Remove whitespace characters at the end of line
|
||||
trim_trailing_whitespace = true
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"problemMatcher": [
|
||||
{
|
||||
"owner": "actionlint",
|
||||
"pattern": [
|
||||
{
|
||||
"regexp": "^(?:\\x1b\\[\\d+m)?(.+?)(?:\\x1b\\[\\d+m)*:(?:\\x1b\\[\\d+m)*(\\d+)(?:\\x1b\\[\\d+m)*:(?:\\x1b\\[\\d+m)*(\\d+)(?:\\x1b\\[\\d+m)*: (?:\\x1b\\[\\d+m)*(.+?)(?:\\x1b\\[\\d+m)* \\[(.+?)\\]$",
|
||||
"file": 1,
|
||||
"line": 2,
|
||||
"column": 3,
|
||||
"message": 4,
|
||||
"code": 5
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
# To get started with Dependabot version updates, you'll need to specify which
|
||||
# package ecosystems to update and where the package manifests are located.
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions" # See documentation for possible values
|
||||
directory: "/" # Location of package manifests
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
name: Lint GitHub Actions workflows
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
actionlint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Check workflow files
|
||||
run: |
|
||||
echo "::add-matcher::.github/actionlint-matcher.json"
|
||||
bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
|
||||
./actionlint -color
|
||||
shell: bash
|
||||
Vendored
+1047
File diff suppressed because it is too large
Load Diff
+39
@@ -0,0 +1,39 @@
|
||||
name: CMake
|
||||
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'ci/**'
|
||||
- '!ci/gha**'
|
||||
- 'dependabot/**'
|
||||
pull_request:
|
||||
branches:
|
||||
- 'master'
|
||||
|
||||
concurrency:
|
||||
group: cmake-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
test-install:
|
||||
name: CMake - ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [macos-latest, ubuntu-latest, ubuntu-24.04-arm, windows-latest, windows-11-arm]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
|
||||
- uses: ilammy/msvc-dev-cmd@v1
|
||||
|
||||
- name: Configure SIMDe
|
||||
run: cmake -G Ninja -S . -B build
|
||||
|
||||
- name: Build SIMDe
|
||||
run: cmake --build build
|
||||
|
||||
- name: Test SIMDe Package
|
||||
run: ctest --test-dir build --output-on-failure --verbose
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [master]
|
||||
schedule:
|
||||
- cron: '0 8 * * 3'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
# Override automatic language detection by changing the below list
|
||||
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
|
||||
language: ['c-cpp']
|
||||
# Learn more...
|
||||
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v4
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
trap-caching: false
|
||||
|
||||
- run: |
|
||||
sudo apt-get install -y ninja-build pipx gcc g++
|
||||
pip3 install meson==0.55.1
|
||||
"$HOME/.local/bin/meson" setup build
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v4
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
name: deploy
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
no-tests:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/setup-python@v6
|
||||
- name: Filter Repository
|
||||
run: |
|
||||
pip install git-filter-repo
|
||||
git-filter-repo --force --path-rename COPYING:.no-test/COPYING && \
|
||||
git-filter-repo --path-rename '.no-test/':'simde/' && \
|
||||
git-filter-repo --subdirectory-filter simde
|
||||
- name: GitHub Push
|
||||
uses: ad-m/github-push-action@v1.0.0
|
||||
with:
|
||||
github_token: ${{ secrets.PUSH_TO_NO_TESTS_TOKEN }}
|
||||
repository: simd-everywhere/simde-no-tests
|
||||
|
||||
status:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
fetch-depth: 0
|
||||
repository: simd-everywhere/implementation-status
|
||||
token: ${{ secrets.PUSH_IMPLEMENTATION_STATUS_TOKEN }}
|
||||
path: implementation-status
|
||||
- name: Install APT Dependencies
|
||||
run: sudo apt-get update && sudo apt-get install -y python3-lxml
|
||||
- name: Update
|
||||
run: ./implementation-status/scripts/update.sh .
|
||||
- uses: EndBug/add-and-commit@v9
|
||||
with:
|
||||
cwd: implementation-status
|
||||
message: Sync with latest SIMDe.
|
||||
default_author: github_actions
|
||||
+331
@@ -0,0 +1,331 @@
|
||||
name: GCC-16
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'master'
|
||||
workflow_dispatch: {}
|
||||
repository_dispatch:
|
||||
types: [on-demand-gcc-16]
|
||||
|
||||
concurrency:
|
||||
group: gcc-snapshot-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
x86:
|
||||
runs-on: ubuntu-24.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
isax:
|
||||
- -DSIMDE_NATURAL_VECTOR_SIZE=256 -march=x86-64-v3 -mavx512bw -mavx512vl
|
||||
# https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels
|
||||
- -march=x86-64 -maes -mpclmul # the x86-64 baseline is CMOV, CX8, FPU, FXSR, MMX, OSFXSR, SCE, SSE, SSE2
|
||||
- -march=x86-64-v2 # CMPXCHG16B, LAHF-SAHF, POPCNT, SSE3, SSE4_1, SSE4_2, SSSE3
|
||||
- -march=x86-64-v3 # AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT, MOVBE, OSXSAVE
|
||||
- -march=x86-64-v4 # AVX512F, AVX512BW, AVX512CD, AVX512DQ, AVX512VL a.k.a. skylake+ (including zen4)
|
||||
include:
|
||||
- target: tgl
|
||||
- isax: -march=x86-64-v4 -mcx16 -mxsave -mpclmul -mfsgsbase -mrdrnd -mhle -mrdseed -maes -mclflushopt -mxsavec -mxsaves -msgx -mpku -msha -mrdpid -mavx512vpopcntdq -mavx512ifma -mavx512vbmi -mavx512vnni -mavx512vbmi2 -mavx512bitalg -mvpclmulqdq -mgfni -mvaes # icelake
|
||||
target: icl
|
||||
- isax: -march=x86-64-v4 -mcx16 -mxsave -mpclmul -mfsgsbase -mrdrnd -mhle -mrdseed -maes -mclflushopt -mxsavec -mxsaves -msgx -mpku -msha -mrdpid -mavx512vpopcntdq -mavx512ifma -mavx512vbmi -mavx512vnni -mavx512vbmi2 -mavx512bitalg -mvpclmulqdq -mgfni -mvaes -mpconfig -mwbnoinvd -mclwb -mmovdiri -mmovdir64b -menqcmd -mcldemote -mptwrite -mwaitpkg -mserialize -mtsxldtrk -muintr -mavxvnni -mavx512fp16 # sapphire rapids without bf16
|
||||
# See https://github.com/simd-everywhere/simde/issues/1095
|
||||
target: spr
|
||||
env:
|
||||
CFLAGS: -Wall -Wextra -Werror ${{ matrix.isax }}
|
||||
CXXFLAGS: -Wall -Wextra -Werror ${{ matrix.isax }}
|
||||
INTEL_TARGET: ${{ matrix.target }}
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
if: ${{ github.event_name != 'repository_dispatch' }}
|
||||
with:
|
||||
submodules: recursive
|
||||
- uses: actions/checkout@v6
|
||||
if: ${{ github.event_name == 'repository_dispatch' }}
|
||||
with:
|
||||
submodules: recursive
|
||||
repository: ${{ github.event.client_payload.repository }}
|
||||
ref: ${{ github.event.client_payload.ref }}
|
||||
- name: CPU Information
|
||||
run: cat /proc/cpuinfo
|
||||
- name: Install APT Dependencies
|
||||
run: |
|
||||
sudo add-apt-repository ppa:misterc/gcc-snapshot-latest-lts
|
||||
# sudo add-apt-repository ppa:stephanosio/ccache
|
||||
sudo apt-get install -y --no-install-recommends ninja-build pipx
|
||||
sudo apt-get install -y ${{ github.event.client_payload.extra }} gcc-16 g++-16 # ccache
|
||||
sudo apt-get purge -y gcc g++
|
||||
sudo ln -s /usr/bin/gcc-16 /usr/bin/gcc
|
||||
sudo ln -s /usr/bin/g++-16 /usr/bin/g++
|
||||
pipx install meson==0.55.1
|
||||
# - name: ccache
|
||||
# uses: hendrikmuhs/ccache-action@v1.2
|
||||
# with:
|
||||
# key: gcc-16-${{ github.job }}-${{ matrix.isax }}
|
||||
# verbose: 2
|
||||
# - name: add ccache to the build path
|
||||
# run: |
|
||||
# export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
- name: Configure
|
||||
run: meson setup build || (cat build/meson-logs/meson-log.txt ; false)
|
||||
- name: Test run native?
|
||||
run: |
|
||||
test/check-flags.sh query && echo Tests with "$CFLAGS" will be run natively
|
||||
test/check-flags.sh query || echo Tests with "$CFLAGS" will be run using SDE
|
||||
- name: Build
|
||||
run: ninja -C build -v
|
||||
- name: Test
|
||||
run: |
|
||||
# shellcheck disable=SC2046
|
||||
meson test -C build --print-errorlogs --wrapper "${GITHUB_WORKSPACE}/test/check-flags.sh sde" # $(meson test -C build --list | grep -v emul)
|
||||
|
||||
x86-xop:
|
||||
runs-on: ubuntu-24.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
env:
|
||||
CFLAGS: -Wall -Wextra -Werror -march=bdver2
|
||||
CXXFLAGS: -Wall -Wextra -Werror -march=bdver2
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
if: ${{ github.event_name != 'repository_dispatch' }}
|
||||
with:
|
||||
submodules: recursive
|
||||
- uses: actions/checkout@v6
|
||||
if: ${{ github.event_name == 'repository_dispatch' }}
|
||||
with:
|
||||
submodules: recursive
|
||||
repository: ${{ github.event.client_payload.repository }}
|
||||
ref: ${{ github.event.client_payload.ref }}
|
||||
- name: CPU Information
|
||||
run: cat /proc/cpuinfo
|
||||
- name: Install APT Dependencies
|
||||
run: |
|
||||
sudo add-apt-repository ppa:misterc/gcc-snapshot-latest-lts
|
||||
# sudo add-apt-repository ppa:stephanosio/ccache
|
||||
sudo apt-get install -y --no-install-recommends ninja-build pipx \
|
||||
qemu-user-static # ccache
|
||||
sudo apt-get install -y ${{ github.event.client_payload.extra }} gcc-16 g++-16
|
||||
sudo apt-get purge -y gcc g++
|
||||
sudo ln -s /usr/bin/gcc-16 /usr/bin/gcc
|
||||
sudo ln -s /usr/bin/g++-16 /usr/bin/g++
|
||||
pipx install meson==0.55.1
|
||||
# - name: ccache
|
||||
# uses: hendrikmuhs/ccache-action@v1.2
|
||||
# with:
|
||||
# key: gcc-16-${{ github.job }}
|
||||
# verbose: 2
|
||||
# - name: add ccache to the build path
|
||||
# run: |
|
||||
# export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
- name: Configure
|
||||
run: meson setup build || (cat build/meson-logs/meson-log.txt ; false)
|
||||
- name: Build
|
||||
run: ninja -C build -v
|
||||
# can't test until we find a combination of `gcc -march=` and `qemu -cpu` that both enable XOP and allows qemu to test it
|
||||
# - name: Test
|
||||
# run: meson test -C build --print-errorlogs --wrapper "qemu-amd64-static -cpu Opteron_G5-v1"
|
||||
|
||||
sleef:
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
CFLAGS: -march=native -Wall -Wextra -Werror
|
||||
CXXFLAGS: -march=native -Wall -Wextra -Werror
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
if: ${{ github.event_name != 'repository_dispatch' }}
|
||||
with:
|
||||
submodules: recursive
|
||||
- uses: actions/checkout@v6
|
||||
if: ${{ github.event_name == 'repository_dispatch' }}
|
||||
with:
|
||||
submodules: recursive
|
||||
repository: ${{ github.event.client_payload.repository }}
|
||||
ref: ${{ github.event.client_payload.ref }}
|
||||
- id: cpu
|
||||
name: CPU Information
|
||||
run: |
|
||||
cat /proc/cpuinfo
|
||||
- name: Install APT Dependencies
|
||||
run: |
|
||||
sudo add-apt-repository ppa:misterc/gcc-snapshot-latest-lts
|
||||
# sudo add-apt-repository ppa:stephanosio/ccache
|
||||
sudo apt-get install -y --no-install-recommends ninja-build pipx \
|
||||
libsleef-dev # ccache
|
||||
sudo apt-get install -y ${{ github.event.client_payload.extra }} gcc-16 g++-16
|
||||
sudo apt-get purge -y gcc g++
|
||||
sudo ln -s /usr/bin/gcc-16 /usr/bin/gcc
|
||||
sudo ln -s /usr/bin/g++-16 /usr/bin/g++
|
||||
pipx install meson==0.55.1
|
||||
# - name: ccache
|
||||
# uses: hendrikmuhs/ccache-action@v1.2
|
||||
# with:
|
||||
# key: gcc-16-${{ github.job }}
|
||||
# verbose: 2
|
||||
# - name: add ccache to the build path
|
||||
# run: |
|
||||
# export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
- name: Configure
|
||||
run: meson setup build -Dsleef=enabled || (cat build/meson-logs/meson-log.txt ; false)
|
||||
- name: Build
|
||||
run: ninja -C build -v
|
||||
- name: Test
|
||||
run: |
|
||||
# shellcheck disable=SC2046
|
||||
meson test -C build --print-errorlogs # $(meson test -C build --list | grep -v emul)
|
||||
|
||||
gcc-16:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- distro: ubuntu-24.04
|
||||
arch_flags: -ffast-math
|
||||
- distro: ubuntu-24.04
|
||||
- distro: ubuntu-24.04-arm
|
||||
runs-on: ${{ matrix.distro }}
|
||||
env:
|
||||
CFLAGS: ${{ matrix.arch_flags }} -march=native -Wall -Wextra -Werror
|
||||
CXXFLAGS: ${{ matrix.arch_flags }} -march=native -Wall -Wextra -Werror
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
if: ${{ github.event_name != 'repository_dispatch' }}
|
||||
with:
|
||||
submodules: recursive
|
||||
- uses: actions/checkout@v6
|
||||
if: ${{ github.event_name == 'repository_dispatch' }}
|
||||
with:
|
||||
submodules: recursive
|
||||
repository: ${{ github.event.client_payload.repository }}
|
||||
ref: ${{ github.event.client_payload.ref }}
|
||||
- id: cpu
|
||||
name: CPU Information
|
||||
run: |
|
||||
cat /proc/cpuinfo
|
||||
- name: Install APT Dependencies
|
||||
run: |
|
||||
sudo add-apt-repository ppa:misterc/gcc-snapshot-latest-lts
|
||||
# sudo add-apt-repository ppa:stephanosio/ccache
|
||||
sudo apt-get -y install --no-install-recommends pipx ninja-build \
|
||||
# ccache
|
||||
sudo apt-get install -y ${{ github.event.client_payload.extra }} gcc-16 g++-16
|
||||
sudo apt-get -y purge g++ gcc
|
||||
sudo ln -s /usr/bin/gcc-16 /usr/bin/gcc
|
||||
sudo ln -s /usr/bin/g++-16 /usr/bin/g++
|
||||
pipx install meson==0.55.1
|
||||
# - name: ccache
|
||||
# uses: hendrikmuhs/ccache-action@v1.2
|
||||
# with:
|
||||
# key: ${{ github.job }}-${{ matrix.version }}-${{ matrix.distro }}-${{ matrix.arch_flags }}
|
||||
# verbose: 2
|
||||
# - name: add ccache to the build path
|
||||
# run: |
|
||||
# export PATH="/usr/lib/ccache:/usr/local/opt/ccache/libexec:$PATH"
|
||||
- name: Configure
|
||||
run: meson setup build || (cat build/meson-logs/meson-log.txt ; false)
|
||||
- name: Build
|
||||
run: meson compile -C build --verbose
|
||||
- name: Test
|
||||
run: |
|
||||
# shellcheck disable=SC2046
|
||||
meson test -C build --print-errorlogs # $(meson test -C build --list | grep -v emul)
|
||||
|
||||
gcc-qemu:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- version: 16
|
||||
cross: armel
|
||||
arch_gnu_abi: eabi
|
||||
arch_deb: armel
|
||||
arch_gnu: arm
|
||||
distro: ubuntu-24.04
|
||||
- version: 16
|
||||
cross: armv7
|
||||
arch_gnu: arm
|
||||
arch_gnu_abi: eabihf
|
||||
arch_deb: armhf
|
||||
distro: ubuntu-24.04
|
||||
- version: 16
|
||||
extra: -no-extras
|
||||
cross: aarch64
|
||||
arch_gnu: aarch64
|
||||
arch_deb: arm64
|
||||
distro: ubuntu-24.04
|
||||
- version: 16
|
||||
cross: aarch64
|
||||
arch_gnu: aarch64
|
||||
arch_deb: arm64
|
||||
distro: ubuntu-24.04
|
||||
- extra: -32bit
|
||||
version: 16
|
||||
cross: armv8
|
||||
arch_gnu: arm
|
||||
arch_gnu_abi: eabihf
|
||||
arch_deb: armhf
|
||||
distro: ubuntu-24.04
|
||||
- version: 16
|
||||
cross: riscv64
|
||||
arch_gnu: riscv64
|
||||
arch_deb: riscv64
|
||||
distro: ubuntu-24.04
|
||||
- extra: -O3
|
||||
version: 16
|
||||
cross: riscv64
|
||||
arch_gnu: riscv64
|
||||
arch_deb: riscv64
|
||||
distro: ubuntu-24.04
|
||||
- version: 16
|
||||
cross: s390x
|
||||
arch_gnu: s390x
|
||||
arch_deb: s390x
|
||||
distro: ubuntu-24.04
|
||||
# - version: 16
|
||||
# cross: power9
|
||||
# arch_gnu: powerpc64le
|
||||
# arch_deb: ppc64el
|
||||
# distro: ubuntu-24.04
|
||||
- version: 16
|
||||
cross: loongarch64
|
||||
arch_gnu: loongarch64
|
||||
arch_deb: loong64
|
||||
distro: ubuntu-24.04
|
||||
runs-on: ${{ matrix.distro }}
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
if: ${{ github.event_name != 'repository_dispatch' }}
|
||||
with:
|
||||
submodules: recursive
|
||||
- uses: actions/checkout@v6
|
||||
if: ${{ github.event_name == 'repository_dispatch' }}
|
||||
with:
|
||||
submodules: recursive
|
||||
repository: ${{ github.event.client_payload.repository }}
|
||||
ref: ${{ github.event.client_payload.ref }}
|
||||
- name: CPU Information
|
||||
run: cat /proc/cpuinfo
|
||||
- name: Install APT Dependencies
|
||||
run: |
|
||||
sudo add-apt-repository ppa:misterc/gcc-snapshot-latest-lts
|
||||
sudo apt-get -y --no-install-recommends install ccache ninja-build \
|
||||
binfmt-support qemu-user-static pipx libc6-${{ matrix.arch_deb }}-cross
|
||||
sudo apt-get install -y ${{ github.event.client_payload.extra }} \
|
||||
gcc-${{ matrix.version }}-${{ matrix.arch_gnu }}-linux-gnu${{ matrix.arch_gnu_abi }} \
|
||||
g++-${{ matrix.version }}-${{ matrix.arch_gnu }}-linux-gnu${{ matrix.arch_gnu_abi }} \
|
||||
libstdc++-${{ matrix.version }}-dev-${{ matrix.arch_deb }}-cross
|
||||
pipx install meson==0.55.1
|
||||
# - name: ccache
|
||||
# uses: hendrikmuhs/ccache-action@v1.2
|
||||
# with:
|
||||
# key: ${{ github.job }}-${{ matrix.version}}${{ matrix.extra }}-${{ matrix.distro }}-${{ matrix.cross }}
|
||||
# verbose: 2
|
||||
- name: Configure
|
||||
run: meson setup --cross-file=docker/cross-files/${{ matrix.cross }}-gcc-${{ matrix.version }}${{ matrix.extra}}-ccache.cross build || (cat build/meson-logs/meson-log.txt ; false)
|
||||
- name: Build
|
||||
run: ninja -C build -v
|
||||
- name: Test
|
||||
run: |
|
||||
# shellcheck disable=SC2046
|
||||
meson test -C build --print-errorlogs --print-errorlogs
|
||||
@@ -0,0 +1,45 @@
|
||||
# This workflow integrates a collection of open source static analysis tools
|
||||
# with GitHub code scanning. For documentation, or to provide feedback, visit
|
||||
# https://github.com/github/ossar-action
|
||||
name: OSSAR
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
|
||||
jobs:
|
||||
OSSAR-Scan:
|
||||
# OSSAR runs on windows-latest.
|
||||
# ubuntu-latest and macos-latest support coming soon
|
||||
runs-on: windows-latest
|
||||
|
||||
steps:
|
||||
# Checkout your code repository to scan
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
# We must fetch at least the immediate parents so that if this is
|
||||
# a pull request then we can checkout the head.
|
||||
fetch-depth: 2
|
||||
|
||||
# If this run was triggered by a pull request event, then checkout
|
||||
# the head of the pull request instead of the merge commit.
|
||||
- run: git checkout HEAD^2
|
||||
if: ${{ github.event_name == 'pull_request' }}
|
||||
|
||||
# Install dotnet, used by OSSAR
|
||||
- name: Install .NET
|
||||
uses: actions/setup-dotnet@v5
|
||||
with:
|
||||
dotnet-version: '6.0.x'
|
||||
|
||||
# Run open source static analysis tools
|
||||
- name: Run OSSAR
|
||||
uses: github/ossar-action@v1
|
||||
id: ossar
|
||||
|
||||
# Upload results to the Security tab
|
||||
- name: Upload OSSAR results
|
||||
uses: github/codeql-action/upload-sarif@v4
|
||||
with:
|
||||
sarif_file: ${{ steps.ossar.outputs.sarifFile }}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
name: Cleanup github runner caches on closed pull requests
|
||||
on:
|
||||
pull_request:
|
||||
types:
|
||||
- closed
|
||||
|
||||
jobs:
|
||||
cleanup:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
actions: write
|
||||
steps:
|
||||
- name: Cleanup
|
||||
run: |
|
||||
echo "Fetching list of cache keys"
|
||||
readarray -t cacheKeysForPR < <(gh cache list --ref "${BRANCH}" --json id --jq '.[].id')
|
||||
|
||||
## Setting this to not fail the workflow while deleting cache keys.
|
||||
set +e
|
||||
echo "Deleting caches..."
|
||||
for cacheKey in "${cacheKeysForPR[@]}"
|
||||
do
|
||||
gh cache delete "${cacheKey}"
|
||||
done
|
||||
echo "Done"
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
GH_REPO: ${{ github.repository }}
|
||||
BRANCH: refs/pull/${{ github.event.pull_request.number }}/merge
|
||||
|
||||
Vendored
+4
@@ -0,0 +1,4 @@
|
||||
*~
|
||||
/build*
|
||||
/.cache
|
||||
/.vscode
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
[submodule "munit"]
|
||||
path = test/munit
|
||||
url = https://github.com/nemequ/munit.git
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
Jun Aruga <jaruga@redhat.com>
|
||||
Jun Aruga <jaruga@redhat.com> <jun.aruga@gmail.com>
|
||||
Jun Aruga <jaruga@redhat.com> <junaruga@users.noreply.github.com>
|
||||
Michael R. Crusoe <crusoe@debian.org>
|
||||
Michael R. Crusoe <crusoe@debian.org> <1330696+mr-c@users.noreply.github.com>
|
||||
Michael R. Crusoe <crusoe@debian.org> <michael.crusoe@gmail.com>
|
||||
Yi-Yen Chung <s12345d60@gmail.com>
|
||||
Yi-Yen Chung <s12345d60@gmail.com> <45251297+yyctw@users.noreply.github.com>
|
||||
gu xiwei <guxiwei-hf@loongson.cn> # GF user XiWeiGu
|
||||
Yang Hau <yuanyanghau@gmail.com> # GH user howjmay
|
||||
Zhijin Zeng <zhijin.zeng@spacemit.com> # GH user zengdage
|
||||
Vendored
+10
@@ -0,0 +1,10 @@
|
||||
# SIMDe Without Test Cases
|
||||
|
||||
This repository contains only the core of
|
||||
[SIMDe](https://github.com/simd-everywhere/simde).
|
||||
It is generated automatically for every commit to master, and is
|
||||
intended to be used as a submodule in projects which don't want to
|
||||
include the (rather large) test cases.
|
||||
|
||||
All development work happens in the main repository, please do not
|
||||
file issues or create pull requests against this repository.
|
||||
Vendored
+30
@@ -0,0 +1,30 @@
|
||||
# See the `.packit/README.md` for details.
|
||||
|
||||
# The used RPM spec file path.
|
||||
# A minimal RPM spec file to run the tests.
|
||||
specfile_path: .packit/simde.spec
|
||||
|
||||
jobs:
|
||||
- &copr
|
||||
# Use Fedora COPR in the CI.
|
||||
# https://packit.dev/docs/configuration/#copr_build
|
||||
job: copr_build
|
||||
trigger: pull_request
|
||||
# Enable internet access in the COPR.
|
||||
enable_net: true
|
||||
# Executed targets in the CI. Available targets are below.
|
||||
# https://packit.dev/docs/configuration/#available-copr-build-targets
|
||||
#
|
||||
# Note that we keep the Fedora rawhide. See the `.packit/README.md` -
|
||||
# "Motivation and context" for details.
|
||||
targets:
|
||||
- fedora-rawhide-x86_64
|
||||
- fedora-rawhide-aarch64
|
||||
- fedora-rawhide-ppc64le
|
||||
- fedora-rawhide-s390x
|
||||
- <<: *copr
|
||||
# Run on push to any branch.
|
||||
trigger: commit
|
||||
# Run except the "master*" and "dependabot*" branches.
|
||||
# https://github.com/packit/packit/issues/1986
|
||||
branch: '(?!master)(?!dependabot)'
|
||||
Vendored
+45
@@ -0,0 +1,45 @@
|
||||
# Packit
|
||||
|
||||
This document is to use [Packit CI][Packit] that enables us to test SIMDe on Fedora project's native CPU environments, x86_64, i686, aarch64, ppc64le and s390x as of June 2023. Packit CI can be executed on pull-request and push, and create a RPM package based on the specified RPM spec (recipe) file, then run commands in the `%check` section in the RPM spec file in the environments. We use a minimal RPM spec file only to run tests on the environments.
|
||||
|
||||
## Motivation and context
|
||||
|
||||
We want to keep [Fedora rawhide][Fedora rawhide] cases in the CI. Fedora rawhide is the latest development version of Fedora Linux, not a named release that might go out of support later. Because the gcc and clang new versions are landing on Fedora rawhide earlier than other Linux distributions.
|
||||
|
||||
## How to check the CI results
|
||||
|
||||
1. Enable Packit CI for your forked simde repository. See the [onboarding guide][Packit guide]
|
||||
2. When you push branches to your repository, the CI is triggered. Go to the [Pipelines][Packit pipelines] page to see your pipeline.
|
||||
3. Do browser-search by "simde".
|
||||
4. Click a "fedora-\*-\*" button on the Jobs to go to the job detailed page.
|
||||
5. You can see 3 links below. You can check the Build Logs first, and the SRPM Logs second if it is necessary.
|
||||
* **SRPM Logs**: A log of the preparation of the test such as installing the used RPM packages to test. This is a log that the system creates Source RPM (SRPM) from the RPM spec file.
|
||||
* **Web URL**: Go to the jobs page in Fedora Copr web system used to run the RPM.
|
||||
* **Build Logs**: It includes the testing log and the result. This is a log that the system builds a RPM package from the SRPM. The tests are executed in a part of the processes.
|
||||
|
||||
## Customize the CI
|
||||
|
||||
* `.packit.yml`
|
||||
* You can customize the executed CPU pipelines at the `jobs - targets`, when you see infra issues in the specific CPU pipelines.
|
||||
* `.packit/ci.sh`
|
||||
* You can customize if the CI fails when the tests fail at the "Customized constants" section.
|
||||
* You can customize the tests to be executed to save the CI's total running time at the "Customized constants" section.
|
||||
|
||||
You can check the [configuration document][Packit configuration] for details.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
If you experience issues related to Packit, you can try the following things:
|
||||
|
||||
* Check [Packit status page][Packit status].
|
||||
* Check [Packit pipeline page][Packit pipelines] to check how your application and other applications are running.
|
||||
* Go to [Packit issues page][Packit issues] to open bugs or feature requests.
|
||||
* Contact Packet team. You can contact by their communication channels (Element, Matrix, IRC, Email, and Mastodon) written in [Packit top page][Packit] footer area - Contact.
|
||||
|
||||
[Packit]: https://packit.dev/
|
||||
[Packit configuration]: https://packit.dev/docs/configuration
|
||||
[Packit guide]: https://packit.dev/docs/guide/
|
||||
[Packit issues]: https://github.com/packit/packit/issues
|
||||
[Packit pipelines]: https://dashboard.packit.dev/pipelines
|
||||
[Packit status]: https://status.packit.dev/
|
||||
[Fedora rawhide]: https://docs.fedoraproject.org/en-US/releases/rawhide/
|
||||
Vendored
+215
@@ -0,0 +1,215 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euxo pipefail
|
||||
|
||||
# Define variables
|
||||
HOST_CPU="$(uname -m)"
|
||||
JOBS="$(nproc)"
|
||||
|
||||
# Functions
|
||||
function _time {
|
||||
/bin/time -f '=> [%E]' ${@}
|
||||
}
|
||||
|
||||
function _setup {
|
||||
if ! meson setup "${BUILD_DIR}"; then
|
||||
cat "${BUILD_DIR}/meson-logs/meson-log.txt"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function _build {
|
||||
rm -f build.log
|
||||
if ! _time ninja -C "${BUILD_DIR}" -v -j "${JOBS}" >& build.log; then
|
||||
cat build.log
|
||||
return 1
|
||||
fi
|
||||
head -4 build.log
|
||||
tail -3 build.log
|
||||
}
|
||||
|
||||
function _test {
|
||||
if ! _time meson test -C "${BUILD_DIR}" \
|
||||
-q --no-rebuild --print-errorlogs; then
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function _run_test {
|
||||
if ! _setup; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
if ! _build; then
|
||||
return 2
|
||||
fi
|
||||
|
||||
if ! _test; then
|
||||
return 3
|
||||
fi
|
||||
}
|
||||
|
||||
function _run_test_and_get_result {
|
||||
local exit_status=0
|
||||
local result="skipped"
|
||||
|
||||
if [ "${#}" -lt 1 ]; then
|
||||
echo "Argument error" 2>&1
|
||||
exit 1
|
||||
fi
|
||||
local cond="${1}"
|
||||
|
||||
if [ "${cond}" = "include" ] || [ "${cond}" = "pend" ]; then
|
||||
if _run_test; then
|
||||
if [ "${cond}" = "include" ]; then
|
||||
result="ok"
|
||||
else
|
||||
exit_status=1
|
||||
result="pending - passed unexpectedly"
|
||||
fi
|
||||
else
|
||||
if [ "${cond}" = "include" ]; then
|
||||
exit_status=1
|
||||
result="not ok"
|
||||
else
|
||||
result="pending - failed expectedly"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Use global variables to pass the return values as a limitation of Bash.
|
||||
result_buf="${result}"
|
||||
return "${exit_status}"
|
||||
}
|
||||
|
||||
# Print system info.
|
||||
cat /proc/cpuinfo
|
||||
cat /proc/meminfo
|
||||
|
||||
# Set PATH for commands installed by `pip install`.
|
||||
PATH="${PATH}:${HOME}/.local/bin"
|
||||
|
||||
# Install additional packages.
|
||||
pip3 install -U meson
|
||||
|
||||
# Run test.
|
||||
|
||||
# Configuration
|
||||
#
|
||||
# If the value is true, the CI returns the exit status zero even if the tests
|
||||
# fail as a compromised way.
|
||||
IGNORE_EXIT_STATUS=
|
||||
|
||||
# Define the testing matrix.
|
||||
# "include": Include the test in the matrix. Run the test.
|
||||
# "exclude": Exclude the test. The test is not executed.
|
||||
# It can be used to save the total running time in CI.
|
||||
# "pend" : Run the test, but if the test fails, it passes as exit status zero.
|
||||
# If the test passes unexpectedly, it fails as exit status non-zero.
|
||||
#
|
||||
# Set the default behavior for each test.
|
||||
MATRIX_DEFAULT_GCC_DEFAULT="exclude"
|
||||
MATRIX_DEFAULT_GCC_O2="include"
|
||||
MATRIX_DEFAULT_GCC_RPM="exclude"
|
||||
MATRIX_DEFAULT_CLANG_DEFAULT="exclude"
|
||||
MATRIX_DEFAULT_CLANG_O2="include"
|
||||
MATRIX_DEFAULT_CLANG_RPM="exclude"
|
||||
# Set the CPU specific behavior for each test optionally.
|
||||
# This configuration is prioritized than the default behavior.
|
||||
|
||||
# End of configuration
|
||||
|
||||
# Generate the current CPU specific test conditions.
|
||||
# If there is no CPU specific variable, set the default value.
|
||||
TEST_COND_GCC_DEFAULT=$(eval echo \
|
||||
"\${MATRIX_${HOST_CPU}_GCC_DEFAULT:-${MATRIX_DEFAULT_GCC_DEFAULT}}")
|
||||
TEST_COND_GCC_O2=$(eval echo \
|
||||
"\${MATRIX_${HOST_CPU}_GCC_O2:-${MATRIX_DEFAULT_GCC_O2}}")
|
||||
TEST_COND_GCC_RPM=$(eval echo \
|
||||
"\${MATRIX_${HOST_CPU}_GCC_RPM:-${MATRIX_DEFAULT_GCC_RPM}}")
|
||||
TEST_COND_CLANG_DEFAULT=$(eval echo \
|
||||
"\${MATRIX_${HOST_CPU}_CLANG_DEFAULT:-${MATRIX_DEFAULT_CLANG_DEFAULT}}")
|
||||
TEST_COND_CLANG_O2=$(eval echo \
|
||||
"\${MATRIX_${HOST_CPU}_CLANG_O2:-${MATRIX_DEFAULT_CLANG_O2}}")
|
||||
TEST_COND_CLANG_RPM=$(eval echo \
|
||||
"\${MATRIX_${HOST_CPU}_CLANG_RPM:-${MATRIX_DEFAULT_CLANG_RPM}}")
|
||||
|
||||
exit_status=0
|
||||
# A temporary buffer to store the return value from a function.
|
||||
result_buf=
|
||||
|
||||
# Print compiler versions.
|
||||
gcc --version
|
||||
g++ --version
|
||||
clang --version
|
||||
clang++ --version
|
||||
|
||||
echo "== Tests on gcc in a default status =="
|
||||
if ! BUILD_DIR="build/gcc" CC="gcc" CXX="g++" \
|
||||
_run_test_and_get_result "${TEST_COND_GCC_DEFAULT}"; then
|
||||
exit_status=1
|
||||
fi
|
||||
result_gcc="${result_buf}"
|
||||
|
||||
echo "== Tests on clang in a default status =="
|
||||
if ! BUILD_DIR="build/clang" CC="clang" CXX="clang++" \
|
||||
CFLAGS="--rtlib=compiler-rt" CXXFLAGS="--rtlib=compiler-rt" \
|
||||
_run_test_and_get_result "${TEST_COND_CLANG_DEFAULT}"; then
|
||||
exit_status=1
|
||||
fi
|
||||
result_clang="${result_buf}"
|
||||
|
||||
echo "== Tests on gcc with O2 flag =="
|
||||
if ! BUILD_DIR="build/gcc-O2" CC="gcc" CXX="g++" \
|
||||
CFLAGS="-O2" CXXFLAGS="-O2" \
|
||||
_run_test_and_get_result "${TEST_COND_GCC_O2}"; then
|
||||
exit_status=1
|
||||
fi
|
||||
result_gcc_O2="${result_buf}"
|
||||
|
||||
echo "== Tests on clang with O2 flag =="
|
||||
if ! BUILD_DIR="build/clang-O2" CC="clang" CXX="clang++" \
|
||||
CFLAGS="--rtlib=compiler-rt -O2" CXXFLAGS="--rtlib=compiler-rt -O2" \
|
||||
_run_test_and_get_result "${TEST_COND_CLANG_O2}"; then
|
||||
exit_status=1
|
||||
fi
|
||||
result_clang_O2="${result_buf}"
|
||||
|
||||
# This is an advanced test.
|
||||
echo "== Tests on gcc with flags used in RPM package build =="
|
||||
if ! BUILD_DIR="build/gcc-rpm" CC="gcc" CXX="g++" \
|
||||
CFLAGS="${CI_GCC_RPM_CFLAGS-}" CXXFLAGS="${CI_GCC_RPM_CXXFLAGS-}" \
|
||||
LDFLAGS="${CI_GCC_RPM_LDFLAGS-}" \
|
||||
_run_test_and_get_result "${TEST_COND_GCC_RPM}"; then
|
||||
exit_status=1
|
||||
fi
|
||||
result_gcc_rpm="${result_buf}"
|
||||
|
||||
# This is an advanced test.
|
||||
echo "== Tests on clang with flags used in RPM package build =="
|
||||
if ! BUILD_DIR="build/clang-rpm" CC="clang" CXX="clang++" \
|
||||
CFLAGS="${CI_CLANG_RPM_CFLAGS-}" CXXFLAGS="${CI_CLANG_RPM_CXXFLAGS-}" \
|
||||
LDFLAGS="${CI_CLANG_RPM_LDFLAGS-}" \
|
||||
_run_test_and_get_result "${TEST_COND_CLANG_RPM}"; then
|
||||
exit_status=1
|
||||
fi
|
||||
result_clang_rpm="${result_buf}"
|
||||
|
||||
# Print results.
|
||||
cat <<EOF
|
||||
== Results ==
|
||||
Exit status: ${exit_status}
|
||||
${result_gcc}: gcc without flags
|
||||
${result_gcc_O2}: gcc with -O2 flag
|
||||
${result_gcc_rpm}: gcc with RPM build flags
|
||||
${result_clang}: clang without flags
|
||||
${result_clang_O2}: clang with -O2 flag
|
||||
${result_clang_rpm}: clang with RPM build flags
|
||||
EOF
|
||||
|
||||
if [ "${IGNORE_EXIT_STATUS}" = true ]; then
|
||||
echo "warning: Exiting always with exit status zero is not ideal."
|
||||
exit 0
|
||||
else
|
||||
exit ${exit_status}
|
||||
fi
|
||||
Vendored
+81
@@ -0,0 +1,81 @@
|
||||
# Disable the automatically set build flags to the environment variables such
|
||||
# as CC, CFLAGS, and etc.
|
||||
# See <https://src.fedoraproject.org/rpms/redhat-rpm-config/blob/rawhide/f/macros>.
|
||||
%undefine _auto_set_build_flags
|
||||
|
||||
Name: simde
|
||||
Version: 1
|
||||
Release: 1%{?dist}
|
||||
Summary: Dummy
|
||||
License: MIT
|
||||
URL: https://github.com/simd-everywhere/simde
|
||||
# This value is magically replaced with the archive tar.gz file created by
|
||||
# `git archive` in the process of the CI.
|
||||
# Set the existing file `README.md` in case of creating SRPM from this RPM spec
|
||||
# file on local for testing purpose.
|
||||
Source0: README.md
|
||||
# A path to the CI script.
|
||||
Source1: ci.sh
|
||||
|
||||
# List up the needed RPM package names to test here.
|
||||
# clang, clang++
|
||||
BuildRequires: clang
|
||||
BuildRequires: compiler-rt
|
||||
BuildRequires: gcc
|
||||
# g++
|
||||
BuildRequires: gcc-c++
|
||||
# ninja
|
||||
BuildRequires: ninja-build
|
||||
# pip and setuptools are needed to install and use meson PyPI package.
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-pip
|
||||
BuildRequires: python3-setuptools
|
||||
# The GNU time (/bin/time) is used for testing. Use this GNU time rather than
|
||||
# the embedded time function in bash.
|
||||
# https://www.gnu.org/software/time/
|
||||
BuildRequires: time
|
||||
|
||||
# RPM package description.
|
||||
%description
|
||||
|
||||
# The bash commands to prepare are executed.
|
||||
%prep
|
||||
# Print the replaced value of the Source0.
|
||||
echo "Source0: %{SOURCE0}"
|
||||
# Create a dummy file for a valid RPM spec file.
|
||||
touch dummy.txt
|
||||
|
||||
# The bash commands to test are executed.
|
||||
%check
|
||||
# Check the directory structure in the tar.gz file.
|
||||
tar tzvf "%{SOURCE0}" > source_files.txt
|
||||
head -2 source_files.txt
|
||||
# Check if the submodule munit is included.
|
||||
grep munit source_files.txt
|
||||
# Extract the source archive file.
|
||||
tar xzf "%{SOURCE0}"
|
||||
|
||||
pushd simde-*
|
||||
# Set the flags used to build the actual RPM package.
|
||||
# These can be used in the CI testing script.
|
||||
%global toolchain clang
|
||||
export CI_CLANG_RPM_CFLAGS="%{build_cflags}"
|
||||
export CI_CLANG_RPM_CXXFLAGS="%{build_cxxflags}"
|
||||
export CI_CLANG_RPM_LDFLAGS="%{build_ldflags}"
|
||||
%global toolchain gcc
|
||||
export CI_GCC_RPM_CFLAGS="%{build_cflags}"
|
||||
export CI_GCC_RPM_CXXFLAGS="%{build_cxxflags}"
|
||||
export CI_GCC_RPM_LDFLAGS="%{build_ldflags}"
|
||||
|
||||
echo "Running the CI script %{SOURCE1}."
|
||||
/bin/time -f '=> [%E]' "%{SOURCE1}"
|
||||
popd
|
||||
|
||||
# Files included in the built RPM package.
|
||||
%files
|
||||
%doc dummy.txt
|
||||
|
||||
# Changelog entries for the RPM package.
|
||||
%changelog
|
||||
* Fri Jun 02 2023 Dummy Dummy <dummy@dummy.com> - 1-1
|
||||
- Dummy.
|
||||
Vendored
+55
@@ -0,0 +1,55 @@
|
||||
version: v1.0
|
||||
name: Build
|
||||
agent:
|
||||
machine:
|
||||
type: e1-standard-2
|
||||
os_image: ubuntu2004
|
||||
blocks:
|
||||
- name: CI
|
||||
skip:
|
||||
when: "branch = 'master' OR (branch !~ '^ci/semaphore(/.*)?' AND branch =~ '^ci/.+')"
|
||||
task:
|
||||
jobs:
|
||||
- name: GCC
|
||||
matrix:
|
||||
- env_var: GCC_VERSION
|
||||
values: ['8', '7']
|
||||
commands:
|
||||
- cat /proc/cpuinfo
|
||||
- checkout
|
||||
- git submodule update --init
|
||||
- sudo apt-get update
|
||||
- sudo apt-get install -y ninja-build python3-pip python3-setuptools gcovr gcc-${GCC_VERSION} g++-${GCC_VERSION}
|
||||
- pip3 install meson==0.55.1
|
||||
- mkdir build
|
||||
- CC="gcc-${GCC_VERSION}" CXX="g++-${GCC_VERSION}" ~/.local/bin/meson setup build -Db_coverage=true --optimization $(expr $RANDOM % 3)
|
||||
- ~/.local/bin/meson compile -C build --ninja-args=-v
|
||||
- ~/.local/bin/meson test -C build --print-errorlogs $(~/.local/bin/meson test -C build --list | grep -v emul)
|
||||
- ninja -C build coverage-xml
|
||||
env_vars:
|
||||
- name: CFLAGS
|
||||
value: -Wextra -Werror -march=native
|
||||
- name: CXXFLAGS
|
||||
value: -Wextra -Werror -march=native
|
||||
|
||||
- name: clang
|
||||
matrix:
|
||||
- env_var: CLANG_VERSION
|
||||
values: ['10', '8', '6.0']
|
||||
commands:
|
||||
- cat /proc/cpuinfo
|
||||
- checkout
|
||||
- git submodule update --init
|
||||
- sudo apt-get update
|
||||
- sudo apt-get install -y ninja-build python3-pip python3-setuptools gcovr clang-${CLANG_VERSION}
|
||||
- pip3 install meson==0.55.1
|
||||
- mkdir build
|
||||
- CC="clang-${CLANG_VERSION}" CXX="clang++-${CLANG_VERSION}" ~/.local/bin/meson setup build -Db_coverage=true
|
||||
- ~/.local/bin/meson compile -C build --ninja-args=-v
|
||||
- ~/.local/bin/meson test -C build --print-errorlogs $(~/.local/bin/meson test -C build --list | grep -v emul)
|
||||
- ninja -C build coverage-xml
|
||||
env_vars:
|
||||
- name: CFLAGS
|
||||
value: -Weverything -Werror -march=native
|
||||
- name: CXXFLAGS
|
||||
value: -Weverything -Werror -march=native
|
||||
Vendored
+50
@@ -0,0 +1,50 @@
|
||||
language: c
|
||||
os: linux
|
||||
dist: focal
|
||||
|
||||
jobs:
|
||||
include:
|
||||
- name: POWER9
|
||||
if: branch != master OR type == pull_request
|
||||
arch: ppc64le
|
||||
compiler: clang
|
||||
env:
|
||||
- CC="clang"
|
||||
- CXX="clang++"
|
||||
- CFLAGS="-mcpu=power9 -Weverything -Werror"
|
||||
- CXXFLAGS="-mcpu=power9 -Weverything -Werror"
|
||||
- JOBS="$(nproc)"
|
||||
addons:
|
||||
apt:
|
||||
packages: ninja-build python3-pip clang
|
||||
|
||||
- name: z/Arch
|
||||
if: branch != master OR type == pull_request
|
||||
arch: s390x
|
||||
compiler: gcc
|
||||
env:
|
||||
- CC="gcc"
|
||||
- CXX="g++"
|
||||
- CFLAGS="-march=native -mzvector -Wextra -Werror"
|
||||
- CXXFLAGS="-march=native -mzvector -Wextra -Werror"
|
||||
- JOBS="$(nproc)"
|
||||
addons:
|
||||
apt:
|
||||
packages: ninja-build python3-pip gcc g++
|
||||
|
||||
before_install:
|
||||
- cat /proc/cpuinfo
|
||||
- cat /proc/meminfo
|
||||
|
||||
install:
|
||||
- pip3 install meson==0.55.1
|
||||
|
||||
script:
|
||||
- meson setup build -Db_coverage=true
|
||||
- ninja -C build -v -j${JOBS}
|
||||
|
||||
after_success:
|
||||
- meson test -C build --print-errorlogs
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
Vendored
+78
@@ -0,0 +1,78 @@
|
||||
cmake_minimum_required(VERSION 3.22)
|
||||
|
||||
project(
|
||||
simde
|
||||
DESCRIPTION
|
||||
"Implementations of SIMD instruction sets for systems which don't natively support them."
|
||||
HOMEPAGE_URL "https://github.com/simd-everywhere/simde"
|
||||
LANGUAGES C CXX
|
||||
VERSION 0.8.4
|
||||
)
|
||||
|
||||
# Options
|
||||
option(SIMDE_TEST_CMAKE_PACKAGING "Test cmake packaging" ${PROJECT_IS_TOP_LEVEL})
|
||||
|
||||
# The main simde library
|
||||
add_library(simde INTERFACE)
|
||||
add_library(simde::simde ALIAS simde)
|
||||
|
||||
target_compile_features(simde INTERFACE c_std_99)
|
||||
|
||||
target_include_directories(
|
||||
simde
|
||||
INTERFACE
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
)
|
||||
|
||||
if(SIMDE_TEST_CMAKE_PACKAGING)
|
||||
include(CTest)
|
||||
enable_testing()
|
||||
add_subdirectory(test/cmake-packaging)
|
||||
endif()
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
# Install headers
|
||||
install(DIRECTORY simde DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
|
||||
# Export targets
|
||||
install(TARGETS simde EXPORT simde-targets)
|
||||
|
||||
# Package Configuration
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
write_basic_package_version_file(
|
||||
${CMAKE_CURRENT_BINARY_DIR}/simde-config-version.cmake
|
||||
VERSION ${PROJECT_VERSION}
|
||||
COMPATIBILITY SameMajorVersion
|
||||
)
|
||||
|
||||
file(
|
||||
WRITE
|
||||
${CMAKE_CURRENT_BINARY_DIR}/simde-config.cmake.in
|
||||
"@PACKAGE_INIT@\n"
|
||||
"include(\"\${CMAKE_CURRENT_LIST_DIR}/simde-config-targets.cmake\")\n"
|
||||
)
|
||||
|
||||
configure_package_config_file(
|
||||
${CMAKE_CURRENT_BINARY_DIR}/simde-config.cmake.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/simde-config.cmake
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/simde
|
||||
NO_SET_AND_CHECK_MACRO
|
||||
NO_CHECK_REQUIRED_COMPONENTS_MACRO
|
||||
)
|
||||
|
||||
install(
|
||||
FILES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/simde-config.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/simde-config-version.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/simde
|
||||
)
|
||||
|
||||
install(
|
||||
EXPORT simde-targets
|
||||
FILE simde-config-targets.cmake
|
||||
NAMESPACE simde::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/simde
|
||||
)
|
||||
Vendored
+105
@@ -0,0 +1,105 @@
|
||||
# Contributing to SIMDe
|
||||
|
||||
First off, if you're even reading this, thank you! There is a lot of
|
||||
work to do, and any help is appreciated.
|
||||
|
||||
If you haven't already, please read the
|
||||
[README](https://github.com/simd-everywhere/simde/blob/master/README.md). The
|
||||
[wiki](https://github.com/simd-everywhere/simde/wiki) also has some good
|
||||
information, especially the
|
||||
[FAQ](https://github.com/simd-everywhere/simde/wiki/FAQ) and a guide on how to
|
||||
[implement a new
|
||||
function](https://github.com/simd-everywhere/simde/wiki/Implementing-a-New-Function).
|
||||
|
||||
For information on developing for architectures you don't have access
|
||||
to, please see the [Development
|
||||
Environment](https://github.com/simd-everywhere/simde/wiki/Development-Environment)
|
||||
page on the wiki.
|
||||
|
||||
If you still have questions, or if anything below doesn't make sense
|
||||
to you, please feel free to use the [issue
|
||||
tracker](https://github.com/simd-everywhere/simde/issues) or the [mailing
|
||||
list](https://groups.google.com/forum/#!forum/simde) to ask. I know
|
||||
the SIMDe documentation needs a lot of improvement, and asking
|
||||
questions will help us understand what is missing, so please don't be
|
||||
shy!
|
||||
|
||||
## Building the Tests
|
||||
|
||||
SIMDe contains an extensive test suite used for development. Most
|
||||
users will never need to build the suite, but if you're contributing
|
||||
code to SIMDe you'll need to build them.
|
||||
|
||||
Here is the basic procedure for compiling and running the tests:
|
||||
|
||||
### On Unix
|
||||
```bash
|
||||
mkdir -p build
|
||||
cd build
|
||||
CFLAGS="-march=native" CXXFLAGS="-march=native" meson setup ..
|
||||
ninja test
|
||||
```
|
||||
|
||||
Note that `-march=native` may not be the right flag for your compiler.
|
||||
That should work for most compilers on x86/x86_64, though MSVC is an
|
||||
exception (try `/arch:AVX2` instead of `-march=native`). On other
|
||||
architectures please consult your compiler documentation to find out
|
||||
what flags you should use to enable the SIMD extension for your target
|
||||
platform. Here are a few to try:
|
||||
|
||||
* ARM:
|
||||
* `-march=armv8-a+simd` (for AArch64)
|
||||
* `-march=armv8-a+simd -mfpu=auto` (for ARMv8)
|
||||
* `-march=armv7-a -mfpu=neon` (for ARMv7)
|
||||
* POWER
|
||||
* `-mcpu=native`
|
||||
|
||||
If you need a flag not listed above, please let us know so we can add
|
||||
it to the list.
|
||||
|
||||
#### Single test
|
||||
|
||||
Compile and run a specific test. Switch `emul` for `native`, and `/c` for `/cpp`
|
||||
as needed.
|
||||
|
||||
```
|
||||
meson test --print-errorlogs arm/neon/qabs/emul/c
|
||||
```
|
||||
|
||||
Using `meson test` instead of `ninja` and directly executing the test
|
||||
is helpful for emscripten and other architectures where are there extra steps needed
|
||||
(changing the directory, using `v8` to run`, etc..).
|
||||
|
||||
Just compile one specific test with verbose output. Useful for debugging
|
||||
compiler errors.
|
||||
|
||||
```
|
||||
meson compile --verbose test/arm/neon/qabs-emul-c
|
||||
```
|
||||
|
||||
### On Windows:
|
||||
```bash
|
||||
"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat" arm64
|
||||
mkdir build
|
||||
cd build
|
||||
set CFLAGS="/std:c11"
|
||||
set CXXFLAGS="/Zc:preprocessor"
|
||||
meson setup ..
|
||||
ninja test
|
||||
```
|
||||
Note change arm64 to x64 on x86_64 CPU.
|
||||
|
||||
You may also want to take a look at the
|
||||
[Docker container](https://github.com/simd-everywhere/simde/tree/master/docker)
|
||||
which has many builds pre-configured, including cross-compilers and emulators.
|
||||
|
||||
## Coding Style
|
||||
|
||||
SIMDe has an [EditorConfig](https://editorconfig.org/) file to
|
||||
configure your editor for things like tabs vs. spaces, how many spaces,
|
||||
etc. If you use an editor which doesn't support it out of the box then
|
||||
odds are good there is a plugin you can download; please do so.
|
||||
|
||||
For other coding style information, please see the
|
||||
[Coding Style](https://github.com/simd-everywhere/simde/wiki/Coding-Style)
|
||||
document in the Wiki.
|
||||
Vendored
+20
@@ -0,0 +1,20 @@
|
||||
Copyright (c) 2017 Evan Nemerson <evan@nemerson.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
Vendored
+521
@@ -0,0 +1,521 @@
|
||||
# SIMD Everywhere
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
||||
[](#contributors-)
|
||||
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
||||
[](https://matrix.to/#/#simd-everywhere_community:gitter.im)
|
||||
[](https://codecov.io/gh/simd-everywhere/simde)
|
||||
|
||||
The SIMDe header-only library provides fast, portable implementations of
|
||||
[SIMD intrinsics](https://en.wikipedia.org/wiki/SIMD) on hardware which
|
||||
doesn't natively support them, such as calling [SSE](https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions)
|
||||
functions on ARM. There is no performance penalty if the hardware
|
||||
supports the native implementation (*e.g.*, SSE/[AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions)
|
||||
runs at full speed on [x86](https://en.wikipedia.org/wiki/X86),
|
||||
[NEON](https://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_(Neon)) on [ARM](https://en.wikipedia.org/wiki/ARM_architecture),
|
||||
*etc.*).
|
||||
|
||||
This makes porting code to other architectures much easier in a few
|
||||
key ways:
|
||||
|
||||
First, instead of forcing you to rewrite everything for each
|
||||
architecture, SIMDe lets you get a port up and running almost
|
||||
effortlessly. You can then start working on switching the most
|
||||
performance-critical sections to native intrinsics, improving
|
||||
performance gradually. SIMDe lets (for example) SSE/AVX and NEON code
|
||||
exist side-by-side, in the same implementation.
|
||||
|
||||
Second, SIMDe makes it easier to write code targeting [ISA](https://en.wikipedia.org/wiki/Instruction_set_architecture)
|
||||
extensions you don't have convenient access to. You can run NEON code on your
|
||||
x86 machine *without an emulator*. Obviously you'll eventually want
|
||||
to test on the actual hardware you're targeting, but for most
|
||||
development, SIMDe can provide a much easier path.
|
||||
|
||||
SIMDe takes a very different approach from most other SIMD abstraction
|
||||
layers in that it aims to expose the entire functionality of the
|
||||
underlying instruction set. Instead of limiting functionality to the
|
||||
lowest common denominator, SIMDe tries to minimize the amount of
|
||||
effort required to port while still allowing you the space to optimize
|
||||
as needed.
|
||||
|
||||
The current focus is on writing complete portable implementations,
|
||||
though a large number of functions already have accelerated
|
||||
implementations using one (or more) of the following:
|
||||
|
||||
* SIMD intrinsics from other ISA extensions (e.g., using NEON to
|
||||
implement SSE).
|
||||
* Compiler-specific vector extensions and built-ins such as
|
||||
[`__builtin_shufflevector`](http://clang.llvm.org/docs/LanguageExtensions.html#langext-builtin-shufflevector)
|
||||
and
|
||||
[`__builtin_convertvector`](http://clang.llvm.org/docs/LanguageExtensions.html#langext-builtin-convertvector)
|
||||
* Compiler auto-vectorization hints, using:
|
||||
* [OpenMP 4 SIMD](http://www.openmp.org/)
|
||||
* [Cilk Plus](https://www.cilkplus.org/)
|
||||
* [GCC loop-specific pragmas](https://gcc.gnu.org/onlinedocs/gcc/Loop-Specific-Pragmas.html)
|
||||
* [clang pragma loop hint directives](http://llvm.org/docs/Vectorizers.html#pragma-loop-hint-directives)
|
||||
|
||||
You can [try SIMDe online](https://simde.netlify.app/godbolt/demo)
|
||||
using Compiler Explorer and an amalgamated SIMDe header.
|
||||
|
||||
If you have any questions, please feel free to use the
|
||||
[issue tracker](https://github.com/simd-everywhere/simde/issues) or the
|
||||
[mailing list](https://groups.google.com/forum/#!forum/simde).
|
||||
|
||||
## Current Status
|
||||
|
||||
There are currently complete implementations of the following instruction
|
||||
set extensions:
|
||||
|
||||
* ARM
|
||||
* [NEON](https://en.wikipedia.org/wiki/ARM_architecture_family#Advanced_SIMD_(Neon)) [List](https://developer.arm.com/architectures/instruction-sets/intrinsics/#f:@navigationhierarchiessimdisa=[Neon])
|
||||
* x86 / x86_64
|
||||
* [MMX](https://en.wikipedia.org/wiki/MMX_(instruction_set)) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#techs=MMX)
|
||||
* [SSE](https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#ssetechs=SSE)
|
||||
* [SSE2](https://en.wikipedia.org/wiki/SSE2) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#ssetechs=SSE2)
|
||||
* [SSE3](https://en.wikipedia.org/wiki/SSE3) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#ssetechs=SSE3)
|
||||
* [SSSE3](https://en.wikipedia.org/wiki/SSSE3) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#ssetechs=SSSE3)
|
||||
* [SSE4.1](https://en.wikipedia.org/wiki/SSE4#SSE4.1) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#ssetechs=SSE4_1)
|
||||
* [CRC32](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#ig_expand=7131&othertechs=CRC32)
|
||||
* [AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#avxnewtechs=AVX)
|
||||
* [AVX2](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#avxnewtechs=AVX2)
|
||||
* [F16C](https://en.wikipedia.org/wiki/F16C) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#avxnewtechs=F16C)
|
||||
* [FMA](https://en.wikipedia.org/wiki/FMA_instruction_set) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#avxnewtechs=FMA)
|
||||
* [GFNI](https://en.wikipedia.org/wiki/AVX-512#GFNI) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#othertechs=GFNI)
|
||||
* [XOP](https://en.wikipedia.org/wiki/XOP_instruction_set)
|
||||
* [SVML](https://software.intel.com/content/www/us/en/develop/documentation/cpp-compiler-developer-guide-and-reference/top/compiler-reference/intrinsics/intrinsics-for-intel-advanced-vector-extensions-512-intel-avx-512-instructions/intrinsics-for-arithmetic-operations-1/intrinsics-for-short-vector-math-library-svml-operations.html) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#ig_expand=770&techs=SVML)
|
||||
* [AVX512VPOPCNTDQ](https://en.wikipedia.org/wiki/AVX-512#VPOPCNTDQ_and_BITALG) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#ig_expand=7131&avx512techs=AVX512VPOPCNTDQ)
|
||||
* [AVX512_BITALG](https://en.wikipedia.org/wiki/AVX-512#VPOPCNTDQ_and_BITALG) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#ig_expand=7131&avx512techs=AVX512_BITALG)
|
||||
* [AVX512_VBMI](https://en.wikipedia.org/wiki/AVX-512#Permute) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#ig_expand=7131&avx512techs=AVX512_VBMI)
|
||||
* [AVX512_VNNI](https://en.wikipedia.org/wiki/AVX-512#VNNI) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#ig_expand=7131&avx512techs=AVX512_VNNI)
|
||||
* [AVX512_VP2INTERSECT](https://en.wikipedia.org/wiki/AVX-512#VP2INTERSECT) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#ig_expand=7131&avx512techs=AVX512_VP2INTERSECT)
|
||||
* [VPCLMULQDQ](https://en.wikipedia.org/wiki/AVX-512#VPCLMULQDQ) [List](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#othertechs=VPCLMULQDQ)
|
||||
* WebAssembly
|
||||
* [SIMD128](https://github.com/WebAssembly/simd)
|
||||
|
||||
As well as partial support for many others, including AES-ni, [CLMUL](https://en.wikipedia.org/wiki/CLMUL_instruction_set), SSE4.2, SVE, [MSA](https://en.wikipedia.org/wiki/MIPS_architecture#Application-specific_extensions) in
|
||||
addition to several AVX-512 extensions. See the
|
||||
[instruction-set-support](https://github.com/simd-everywhere/simde/issues?q=is%3Aissue+is%3Aopen+label%3Ainstruction-set-support+sort%3Aupdated-desc)
|
||||
label in the issue tracker for details on progress. If you'd like to
|
||||
be notified when an instruction set is available you may subscribe to
|
||||
the relevant issue.
|
||||
|
||||
If you have a project you're interested in using with SIMDe but we
|
||||
don't yet support all the functions you need, please file an issue
|
||||
with a list of what's missing so we know what to prioritize.
|
||||
|
||||
The default branch is protected so commits never reach it unless
|
||||
they have passed extensive CI checks. Status badges don't really
|
||||
make sense since they will always be green, but here are the links:
|
||||
|
||||
* [GitHub Actions](https://github.com/simd-everywhere/simde/actions)
|
||||
* [Cirrus CI](https://cirrus-ci.com/github/simd-everywhere/simde)
|
||||
* [Semaphore CI](https://nemequ.semaphoreci.com/projects/simde)
|
||||
* [Circle CI](https://app.circleci.com/pipelines/github/simd-everywhere/simde)
|
||||
* [AppVeyor](https://ci.appveyor.com/project/nemequ/simde)
|
||||
* [Azure Pipelines](https://dev.azure.com/simd-everywhere/SIMDe/_build)
|
||||
* [Drone CI](https://cloud.drone.io/simd-everywhere/simde/)
|
||||
* [Travis CI](https://app.travis-ci.com/github/simd-everywhere/simde/)
|
||||
* [Packit CI](https://dashboard.packit.dev/projects/github.com/simd-everywhere/simde)
|
||||
|
||||
If you're adding a new build I suggest Cirrus CI, which is where we
|
||||
currently have the most room given the number of builds currently on
|
||||
the platform and the quotas for free/open-source usage. Alternately,
|
||||
feel free to set up another provider (such as
|
||||
[Codefresh](https://codefresh.io/),
|
||||
[Shippable](https://www.shippable.com/),
|
||||
[Bitrise](https://www.bitrise.io/),
|
||||
[Werkaer](https://app.wercker.com/), etc.).
|
||||
|
||||
*Notice*: we plan on changing the name of the default branch from
|
||||
"master" to something else soon; we are just trying to wait to see what
|
||||
name git settles on so we can be consistent.
|
||||
|
||||
## Contributing
|
||||
|
||||
First off, if you're reading this: thank you! Even considering
|
||||
contributing to SIMDe is very much appreciated!
|
||||
|
||||
SIMDe is a fairly large undertaking; there are a *lot* of functions to
|
||||
get through and a lot of opportunities for optimization on different
|
||||
platforms, so we're very happy for any help you can provide.
|
||||
|
||||
Programmers of all skill levels are welcome, there are lots of tasks
|
||||
which are pretty straightforward and don't require any special
|
||||
expertise.
|
||||
|
||||
If you're not sure how you'd like to contribute, please consider taking
|
||||
a look at [the issue tracker](https://github.com/simd-everywhere/simde/issues).
|
||||
There is a [good first issue](https://github.com/simd-everywhere/simde/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
|
||||
tag if you want to ease into a your first contributions, but if you're
|
||||
interested in something else please get in touch via the issue tracker;
|
||||
we're happy to help you get a handle on whatever you are interested in.
|
||||
|
||||
If you're interested in implementing currently unimplemented functions,
|
||||
there is [a
|
||||
guide](https://github.com/simd-everywhere/simde/wiki/Implementing-a-New-Function)
|
||||
explaining how to add new functions and how to quickly and easily get
|
||||
a test case in place. It's a bit rough right now, but if anything is
|
||||
unclear please feel free to use the issue tracker to ask about
|
||||
anything you're not clear on.
|
||||
|
||||
## Usage
|
||||
|
||||
First, it is important to note that *you do not need two separate
|
||||
versions* (one using SIMDe, the other native). If the native functions
|
||||
are available SIMDe will use them, and compilers easily optimize away
|
||||
any overhead from SIMDe; all they have to do is some basic inlining.
|
||||
`-O2` should be enough, but we strongly recommend `-O3` (or whatever
|
||||
flag instructs your compiler to aggressizely optimize) since many of
|
||||
the portable fallbacks are substantially faster with aggressive
|
||||
auto-vectorization that isn't enabled at lower optimization levels.
|
||||
|
||||
Each instruction set has a separate file; `x86/mmx.h` for MMX,
|
||||
`x86/sse.h` for SSE, `x86/sse2.h` for SSE2, and so on. Just include
|
||||
the header for whichever instruction set(s) you want *instead of the
|
||||
native version* (if you include the native version after SIMDe it will
|
||||
result in compile-time errors if native aliases are enabled). SIMDe
|
||||
will provide the fastest implementation it can given which extensions
|
||||
you've enabled in your compiler (i.e., if you want to use NEON to
|
||||
implement SSE, you may need to pass something like `-mfpu=neon`
|
||||
or `-march=armv8-a+simd`. See
|
||||
[GCC ARM-Options](https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html)
|
||||
for more information).
|
||||
|
||||
If you define `SIMDE_ENABLE_NATIVE_ALIASES` before including SIMDe
|
||||
you can use the same names as the native functions. Unfortunately,
|
||||
this is somewhat error-prone due to portability issues in the APIs, so
|
||||
it's recommended to only do this for testing. When
|
||||
`SIMDE_ENABLE_NATIVE_ALIASES` is undefined only the versions prefixed
|
||||
with `simde_` will be available; for example, the MMX `_mm_add_pi8`
|
||||
intrinsic becomes `simde_mm_add_pi8`, and `__m64` becomes `simde__m64`.
|
||||
|
||||
Since SIMDe is meant to be portable, many functions which assume types
|
||||
are of a specific size have been altered to use fixed-width types
|
||||
instead. For example, Intel's APIs use `char` for signed 8-bit
|
||||
integers, but `char` on ARM is generally unsigned. SIMDe uses `int8_t`
|
||||
to make the API portable, but that means your code may require some
|
||||
minor changes (such as using `int8_t` instead of `char`) to work on
|
||||
other platforms.
|
||||
|
||||
That said, the changes are usually quite minor. It's often enough to
|
||||
just use search and replace, manual changes are required pretty
|
||||
infrequently.
|
||||
|
||||
### OpenMP 4 SIMD
|
||||
|
||||
SIMDe makes extensive use of annotations to help the compiler vectorize
|
||||
code. By far the best annotations use the SIMD support built in to
|
||||
OpenMP 4, so if your compiler supports these annotations we strongly
|
||||
recommend you enable them.
|
||||
|
||||
If you are already using OpenMP, SIMDe will automatically detect it
|
||||
using the `_OPENMP` macro and no further action is required.
|
||||
|
||||
Some compilers allow you to enable OpenMP SIMD *without* enabling the
|
||||
full OpenMP. In such cases there is no runtime dependency on OpenMP
|
||||
and no runtime overhead; SIMDe will just be faster. Unfortunately,
|
||||
SIMDe has no way to detect such situations (the `_OPENMP` macro is not
|
||||
defined), so after enabling it in your compiler you'll need to define
|
||||
`SIMDE_ENABLE_OPENMP` (e.g., by passing `-DSIMDE_ENABLE_OPENMP`) to get
|
||||
SIMDe to output the relevant pragmas.
|
||||
|
||||
Enabling OpenMP SIMD support varies by compiler:
|
||||
|
||||
* GCC 4.9+ and clang 6+ support a `-fopenmp-simd` command line flag.
|
||||
* ICC supports a `-qopenmp-simd` command line flag.
|
||||
* MCST's LCC enables OpenMP SIMD by default, so no flags are needed
|
||||
(technically you don't even need to pass `-DSIMDE_ENABLE_OPENMP`).
|
||||
|
||||
We are not currently aware of any other compilers which allow you to
|
||||
enable OpenMP SIMD support without enabling full OpenMP (if you are
|
||||
please file an issue to let us know). You should determine whether you
|
||||
wish to enable full OpenMP support on a case-by-case basis, but it is
|
||||
likely that the overhead of linking to (but not using) the OpenMP
|
||||
runtime library will be dwarfed by the performance improvements from
|
||||
using the OpenMP SIMD annotations in SIMDe.
|
||||
|
||||
If you choose not to use OpenMP SIMD, SIMDe also supports
|
||||
using [Cilk Plus](https://www.cilkplus.org/), [GCC loop-specific
|
||||
pragmas](https://gcc.gnu.org/onlinedocs/gcc/Loop-Specific-Pragmas.html),
|
||||
or [clang pragma loop hint
|
||||
directives](http://llvm.org/docs/Vectorizers.html#pragma-loop-hint-directives),
|
||||
though these are not nearly as effective as OpenMP SIMD and depending
|
||||
on them will likely result in less efficient code. All of these are
|
||||
detected automatically by SIMDe, so if they are enabled in your
|
||||
compiler nothing more is required.
|
||||
|
||||
If for some reason you do not wish to enable OpenMP 4 SIMD support even
|
||||
though SIMDe detects it, you should define `SIMDE_DISABLE_OPENMP` prior
|
||||
to including SIMDe.
|
||||
|
||||
## Portability
|
||||
|
||||
### Compilers
|
||||
|
||||
SIMDe does depend on some C99 features, though the subset supported by
|
||||
MSVC also works. While we do our best to make sure we provide optimized
|
||||
implementations where they are supported, SIMDe does contain portable
|
||||
fallbacks which are designed to work on any C99 compiler.
|
||||
|
||||
Every commit is tested in CI on multiple compilers, platforms, and
|
||||
configurations, and our test coverage is extremely extensive.
|
||||
Currently tested compilers include:
|
||||
|
||||
* GCC versions back to 4.8
|
||||
* Clang versions back to 3.8
|
||||
* Microsoft Visual Studio back to 12 (2013)
|
||||
* IBM XL C/C++
|
||||
* Intel C/C++ Compiler (ICC)
|
||||
|
||||
I'm generally willing to accept patches to add support for other
|
||||
compilers, as long as they're not too disruptive, *especially* if we
|
||||
can get CI support going. If using one of our existing CI providers
|
||||
isn't an option then other CI platforms can be added.
|
||||
|
||||
### Hardware
|
||||
|
||||
The following architectures are tested in CI for every commit:
|
||||
|
||||
* x86_64/amd64
|
||||
* x86
|
||||
* AArch64
|
||||
* ARMv8
|
||||
* ARMv7 with VFPv3-D16 floating point
|
||||
* ARMv5 EABI
|
||||
* PPC64
|
||||
* z/Architecture (with "-mzvector")
|
||||
* MIPS Loongson 64
|
||||
* RISC-V 64
|
||||
* emscripten 32- & 64-bit; regular and relaxed
|
||||
* LoongArch64
|
||||
|
||||
We would love to add more, so patches are extremely welcome!
|
||||
|
||||
## Related Projects
|
||||
|
||||
* The "builtins" module in
|
||||
[portable-snippets](https://github.com/nemequ/portable-snippets)
|
||||
does much the same thing, but for compiler-specific intrinsics
|
||||
(think `__builtin_clz` and `_BitScanForward`), **not** SIMD
|
||||
intrinsics.
|
||||
* Intel offers an emulator, the [Intel® Software Development
|
||||
Emulator](https://software.intel.com/en-us/articles/intel-software-development-emulator/)
|
||||
which can be used to develop software which uses Intel intrinsics
|
||||
without having to own hardware which supports them, though it
|
||||
doesn't help for deployment.
|
||||
* [Iris](https://github.com/AlexYaruki/iris) is the only other project
|
||||
I'm aware of which is attempting to create portable implementations
|
||||
like SIMDe. SIMDe is much further along on the Intel side, but Iris
|
||||
looks to be in better shape on ARM. C++-only, Apache 2.0 license.
|
||||
AFAICT there are no accelerated fallbacks, nor is there a good way to
|
||||
add them since it relies extensively on templates.
|
||||
* There are a few projects trying to implement one set with another:
|
||||
* [ARM_NEON_2_x86_SSE](https://github.com/intel/ARM_NEON_2_x86_SSE)
|
||||
— implementing NEON using SSE. Quite extensive, Apache 2.0
|
||||
license.
|
||||
* [sse2neon](https://github.com/jratcliff63367/sse2neon) —
|
||||
implementing SSE using NEON. This code has already been merged
|
||||
into SIMDe.
|
||||
* [veclib](https://github.com/IvantheDugtrio/veclib) — implementing
|
||||
SSE2 using AltiVec/VMX, using a non-free IBM library called
|
||||
[powerveclib](https://www.ibm.com/developerworks/community/groups/community/powerveclib/)
|
||||
* [SSE-to-NEON](https://github.com/otim/SSE-to-NEON) — implementing
|
||||
SSE with NEON. Non-free, C++.
|
||||
* [AvxToNeon](https://github.com/kunpengcompute/AvxToNeon) — Popular
|
||||
AVX+ intrinsincs implemented in NEON. C, Apache 2.0 license.
|
||||
* [neon2rvv](https://github.com/howjmay/neon2rvv) - A C/C++ header file that converts Arm/Aarch64 NEON intrinsics to RISC-V Vector (RVV) Extension, MIT license
|
||||
* [sse2rvv](https://github.com/pattonkan/sse2rvv) - A C/C++ header file that converts Intel SSE intrinsics to RISCV-V Extension intrinsics, MIT license.
|
||||
* [arm-neon-tests](https://github.com/christophe-lyon/arm-neon-tests)
|
||||
contains tests to verify NEON implementations.
|
||||
|
||||
If you know of any other related projects, please [let us
|
||||
know](https://github.com/simd-everywhere/simde/issues/new)!
|
||||
|
||||
## Caveats
|
||||
|
||||
Sometime features can't be emulated. If SIMDe is operating in native
|
||||
mode the functions will work as expected, but if there is no native
|
||||
support some caveats apply:
|
||||
|
||||
* Many functions require <math.h> and/or <fenv.h>. SIMDe will still
|
||||
work without those headers, but the results of those functions are
|
||||
undefined.
|
||||
* x86 / x86_64
|
||||
* SSE
|
||||
* `SIMDE_MM_SET_ROUNDING_MODE()` will use `fesetround()`, altering
|
||||
the global rounding mode.
|
||||
* `simde_mm_getcsr` and `simde_mm_setcsr` only implement bits 13
|
||||
and 14 (rounding mode).
|
||||
* AVX
|
||||
* `simde_mm256_test*` do not set the CF/ZF registers as there is
|
||||
no portable way to implement that functionality.
|
||||
* `simde_mm256_zeroall` and `simde_mm256_zeroupper` are not
|
||||
implemented as there is no portable way to implement that
|
||||
functionality.
|
||||
|
||||
Additionally, there are some known limitations which apply when using
|
||||
native aliases (`SIMDE_ENABLE_NATIVE_ALIASES`):
|
||||
|
||||
* On Windows x86 (but not x86_64), some MMX functions and SSE/SSE2
|
||||
functions which use MMX types (__m64) other than for pointers may
|
||||
return incorrect results.
|
||||
|
||||
Also, as mentioned earlier, while some APIs make assumptions about
|
||||
basic types (*e.g.*, `int` is 32 bits), SIMDe does not, so many types
|
||||
have been altered to use portable fixed-width versions such as
|
||||
`int32_t`.
|
||||
|
||||
If you find any other differences, please file an issue so we can either fix
|
||||
it or add it to the list above.
|
||||
|
||||
## Benefactors
|
||||
|
||||
SIMDe uses resources provided for free by a number of organizations.
|
||||
While this shouldn't be taken to imply endorsement of SIMDe, we're
|
||||
tremendously grateful for their support:
|
||||
|
||||
* [IntegriCloud](https://integricloud.com/) — provides access to a very
|
||||
fast POWER9 server for developing AltiVec/VMX support.
|
||||
* [GCC Compile Farm](https://gcc.gnu.org/wiki/CompileFarm) — provides
|
||||
access to a wide range of machines with different architectures for
|
||||
developing support for various ISA extensions.
|
||||
* [CodeCov.io](https://codecov.io/) — provides code coverage analysis
|
||||
for our test cases.
|
||||
* [Google](https://www.google.com/) — financing
|
||||
[Summer of Code](https://summerofcode.withgoogle.com/), substantial
|
||||
amounts of code (Sean Maher's contributions), and an [Open Source Peer
|
||||
Bonus](https://opensource.google/docs/growing/peer-bonus/).
|
||||
|
||||
Without such organizations donating resources, SIMDe wouldn't be nearly
|
||||
as useful or usable as it is today.
|
||||
|
||||
We would also like to thank anyone who has helped develop the myriad
|
||||
of software on which SIMDe relies, including compilers and analysis
|
||||
tools.
|
||||
|
||||
Finally, a special thank you to
|
||||
[anyone who has contributed](https://github.com/simd-everywhere/simde/graphs/contributors)
|
||||
to SIMDe, filed bugs, provided suggestions, or helped with SIMDe
|
||||
development in any way.
|
||||
|
||||
## License
|
||||
|
||||
SIMDe is distributed under an MIT-style license; see COPYING for
|
||||
details.
|
||||
|
||||
## Contributors ✨
|
||||
|
||||
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- markdownlint-disable -->
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center"><a href="https://nemequ.github.io/"><img src="https://avatars0.githubusercontent.com/u/1151?v=4" width="100px;" alt=""/><br /><sub><b>Evan Nemerson</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=nemequ" title="Code">💻</a> <a href="#content-nemequ" title="Content">🖋</a> <a href="https://github.com/nemequ/simde/commits?author=nemequ" title="Documentation">📖</a> <a href="#example-nemequ" title="Examples">💡</a> <a href="#ideas-nemequ" title="Ideas, Planning, & Feedback">🤔</a> <a href="#question-nemequ" title="Answering Questions">💬</a> <a href="https://github.com/nemequ/simde/pulls?q=is%3Apr+reviewed-by%3Anemequ" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/nemequ/simde/commits?author=nemequ" title="Tests">⚠️</a> <a href="#tutorial-nemequ" title="Tutorials">✅</a> <a href="#talk-nemequ" title="Talks">📢</a> <a href="https://github.com/nemequ/simde/issues?q=author%3Anemequ" title="Bug reports">🐛</a> <a href="#infra-nemequ" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-nemequ" title="Maintenance">🚧</a> <a href="#projectManagement-nemequ" title="Project Management">📆</a></td>
|
||||
<td align="center"><a href="https://orcid.org/0000-0002-2961-9670"><img src="https://avatars3.githubusercontent.com/u/1330696?v=4" width="100px;" alt=""/><br /><sub><b>Michael R. Crusoe</b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3Amr-c" title="Bug reports">🐛</a> <a href="https://github.com/nemequ/simde/commits?author=mr-c" title="Code">💻</a> <a href="#eventOrganizing-mr-c" title="Event Organizing">📋</a> <a href="#fundingFinding-mr-c" title="Funding Finding">🔍</a> <a href="#ideas-mr-c" title="Ideas, Planning, & Feedback">🤔</a> <a href="#infra-mr-c" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#platform-mr-c" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/nemequ/simde/commits?author=mr-c" title="Tests">⚠️</a> <a href="#maintenance-mr-c" title="Maintenance">🚧</a> <a href="#projectManagement-mr-c" title="Project Management">📆</a> <a href="https://github.com/nemequ/simde/pulls?q=is%3Apr+reviewed-by%3Amr-c" title="Reviewed Pull Requests">👀</a></td>
|
||||
<td align="center"><a href="https://github.com/himanshi18037"><img src="https://avatars1.githubusercontent.com/u/43923076?v=4" width="100px;" alt=""/><br /><sub><b>HIMANSHI MATHUR</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=himanshi18037" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=himanshi18037" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/masterchef2209"><img src="https://avatars0.githubusercontent.com/u/27916352?v=4" width="100px;" alt=""/><br /><sub><b>Hidayat Khan</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=masterchef2209" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=masterchef2209" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/rosbif"><img src="https://avatars1.githubusercontent.com/u/553899?v=4" width="100px;" alt=""/><br /><sub><b>rosbif</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=rosbif" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=rosbif" title="Tests">⚠️</a> <a href="https://github.com/nemequ/simde/issues?q=author%3Arosbif" title="Bug reports">🐛</a> <a href="#ideas-rosbif" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/nemequ/simde/commits?author=rosbif" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://junaruga.hatenablog.com/"><img src="https://avatars2.githubusercontent.com/u/121989?v=4" width="100px;" alt=""/><br /><sub><b>Jun Aruga</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=junaruga" title="Code">💻</a> <a href="#ideas-junaruga" title="Ideas, Planning, & Feedback">🤔</a> <a href="#platform-junaruga" title="Packaging/porting to new platform">📦</a> <a href="#infra-junaruga" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="#maintenance-junaruga" title="Maintenance">🚧</a> <a href="https://github.com/nemequ/simde/commits?author=junaruga" title="Tests">⚠️</a> <a href="https://github.com/nemequ/simde/issues?q=author%3Ajunaruga" title="Bug reports">🐛</a></td>
|
||||
<td align="center"><a href="https://github.com/marmeladema"><img src="https://avatars2.githubusercontent.com/u/1629419?v=4" width="100px;" alt=""/><br /><sub><b>Élie ROUDNINSKI</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=marmeladema" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=marmeladema" title="Tests">⚠️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://www.bache.name"><img src="https://avatars3.githubusercontent.com/u/7937081?v=4" width="100px;" alt=""/><br /><sub><b>Jesper Storm Bache</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=jsbache" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/jeffdaily"><img src="https://avatars1.githubusercontent.com/u/904248?v=4" width="100px;" alt=""/><br /><sub><b>Jeff Daily</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=jeffdaily" title="Code">💻</a> <a href="#infra-jeffdaily" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
||||
<td align="center"><a href="https://github.com/yekm"><img src="https://avatars2.githubusercontent.com/u/205196?v=4" width="100px;" alt=""/><br /><sub><b>Pavel</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=yekm" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/sabarishbollapragada"><img src="https://avatars3.githubusercontent.com/u/36379720?v=4" width="100px;" alt=""/><br /><sub><b>Sabarish Bollapragada</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=sabarishbollapragada" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://www.thegavinli.com/"><img src="https://avatars2.githubusercontent.com/u/371529?v=4" width="100px;" alt=""/><br /><sub><b>Gavin Li</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=gh2o" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://www.yiningkarlli.com"><img src="https://avatars0.githubusercontent.com/u/1057198?v=4" width="100px;" alt=""/><br /><sub><b>Yining Karl Li</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=betajippity" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://www.facebook.com/anirbandey303"><img src="https://avatars1.githubusercontent.com/u/29774651?v=4" width="100px;" alt=""/><br /><sub><b>Anirban Dey</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=anirbandey303" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/Un1Gfn"><img src="https://avatars3.githubusercontent.com/u/28521292?v=4" width="100px;" alt=""/><br /><sub><b>Darren Ng</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=Un1Gfn" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/FaresSalem"><img src="https://avatars0.githubusercontent.com/u/7736245?v=4" width="100px;" alt=""/><br /><sub><b>FaresSalem</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=FaresSalem" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/GorePradnyesh"><img src="https://avatars0.githubusercontent.com/u/843197?v=4" width="100px;" alt=""/><br /><sub><b>Pradnyesh Gore</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=GorePradnyesh" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/seanptmaher"><img src="https://avatars0.githubusercontent.com/u/39571964?v=4" width="100px;" alt=""/><br /><sub><b>Sean Maher</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=seanptmaher" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://zh.wikipedia.org/wiki/User:Artoria2e5"><img src="https://avatars.githubusercontent.com/u/6459309?v=4" width="100px;" alt=""/><br /><sub><b>Mingye Wang</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=Artoria2e5" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://www.ngzhian.com"><img src="https://avatars.githubusercontent.com/u/1749303?v=4" width="100px;" alt=""/><br /><sub><b>Ng Zhi An</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=ngzhian" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=ngzhian" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/Glitch18"><img src="https://avatars.githubusercontent.com/u/30515829?v=4" width="100px;" alt=""/><br /><sub><b>Atharva Nimbalkar</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=Glitch18" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=Glitch18" title="Tests">⚠️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/simba611"><img src="https://avatars.githubusercontent.com/u/59763921?v=4" width="100px;" alt=""/><br /><sub><b>simba611</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=simba611" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=simba611" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://ashnewmanjones.com"><img src="https://avatars.githubusercontent.com/u/29983014?v=4" width="100px;" alt=""/><br /><sub><b>Ashleigh Newman-Jones</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=ashnewmanjones" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=ashnewmanjones" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://alum.mit.edu/www/wrv/"><img src="https://avatars.githubusercontent.com/u/5039686?v=4" width="100px;" alt=""/><br /><sub><b>Willy R. Vasquez</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=wrv" title="Code">💻</a> <a href="#maintenance-wrv" title="Maintenance">🚧</a> <a href="https://github.com/nemequ/simde/commits?author=wrv" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://cs.stanford.edu/~keithw"><img src="https://avatars.githubusercontent.com/u/208955?v=4" width="100px;" alt=""/><br /><sub><b>Keith Winstein</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=keithw" title="Code">💻</a> <a href="#maintenance-keithw" title="Maintenance">🚧</a> <a href="https://github.com/nemequ/simde/commits?author=keithw" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/SoapGentoo"><img src="https://avatars.githubusercontent.com/u/16636962?v=4" width="100px;" alt=""/><br /><sub><b>David Seifert</b></sub></a><br /><a href="#maintenance-SoapGentoo" title="Maintenance">🚧</a></td>
|
||||
<td align="center"><a href="https://mirdita.de"><img src="https://avatars.githubusercontent.com/u/63657?v=4" width="100px;" alt=""/><br /><sub><b>Milot Mirdita</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=milot-mirdita" title="Code">💻</a> <a href="#maintenance-milot-mirdita" title="Maintenance">🚧</a> <a href="https://github.com/nemequ/simde/commits?author=milot-mirdita" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://bitpatch.com"><img src="https://avatars.githubusercontent.com/u/4021602?v=4" width="100px;" alt=""/><br /><sub><b>aqrit</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=aqrit" title="Code">💻</a> <a href="#maintenance-aqrit" title="Maintenance">🚧</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/dgazzoni"><img src="https://avatars.githubusercontent.com/u/17934171?v=4" width="100px;" alt=""/><br /><sub><b>Décio Luiz Gazzoni Filho</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=dgazzoni" title="Code">💻</a> <a href="#maintenance-dgazzoni" title="Maintenance">🚧</a> <a href="https://github.com/nemequ/simde/commits?author=dgazzoni" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://vk.com/muzzdiez"><img src="https://avatars.githubusercontent.com/u/16463967?v=4" width="100px;" alt=""/><br /><sub><b>Igor Molchanov</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=makise-homura" title="Code">💻</a> <a href="#maintenance-makise-homura" title="Maintenance">🚧</a> <a href="#platform-makise-homura" title="Packaging/porting to new platform">📦</a></td>
|
||||
<td align="center"><a href="https://github.com/anrodrig"><img src="https://avatars.githubusercontent.com/u/35815808?v=4" width="100px;" alt=""/><br /><sub><b>Andrew Rodriguez</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=anrodrig" title="Code">💻</a> <a href="#maintenance-anrodrig" title="Maintenance">🚧</a> <a href="https://github.com/nemequ/simde/commits?author=anrodrig" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/Changqing-JING"><img src="https://avatars.githubusercontent.com/u/59640930?v=4" width="100px;" alt=""/><br /><sub><b>Changqing Jing</b></sub></a><br /><a href="#maintenance-Changqing-JING" title="Maintenance">🚧</a></td>
|
||||
<td align="center"><a href="http://jpcima.sdf1.org/"><img src="https://avatars.githubusercontent.com/u/17614485?v=4" width="100px;" alt=""/><br /><sub><b>JP Cimalando</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=jpcima" title="Code">💻</a> <a href="#infra-jpcima" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
||||
<td align="center"><a href="https://flygoat.com/"><img src="https://avatars.githubusercontent.com/u/5955297?v=4" width="100px;" alt=""/><br /><sub><b>Jiaxun Yang</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=FlyGoat" title="Code">💻</a> <a href="#platform-FlyGoat" title="Packaging/porting to new platform">📦</a></td>
|
||||
<td align="center"><a href="https://github.com/ktgw0316"><img src="https://avatars.githubusercontent.com/u/3116763?v=4" width="100px;" alt=""/><br /><sub><b>Masahiro Kitagawa</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=ktgw0316" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=ktgw0316" title="Tests">⚠️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/operasfantom"><img src="https://avatars.githubusercontent.com/u/31903947?v=4" width="100px;" alt=""/><br /><sub><b>Pavel Iatchenii</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=operasfantom" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=operasfantom" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://tommyvct.tk"><img src="https://avatars.githubusercontent.com/u/7903172?v=4" width="100px;" alt=""/><br /><sub><b>Tommy Vercetti</b></sub></a><br /><a href="#maintenance-tommyvct" title="Maintenance">🚧</a></td>
|
||||
<td align="center"><a href="https://github.com/rscohn2"><img src="https://avatars.githubusercontent.com/u/1936730?v=4" width="100px;" alt=""/><br /><sub><b>Robert Cohn</b></sub></a><br /><a href="#maintenance-rscohn2" title="Maintenance">🚧</a></td>
|
||||
<td align="center"><a href="https://github.com/adamnovak"><img src="https://avatars.githubusercontent.com/u/5062495?v=4" width="100px;" alt=""/><br /><sub><b>Adam Novak</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=adamnovak" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/boris-kuz"><img src="https://avatars.githubusercontent.com/u/18011434?v=4" width="100px;" alt=""/><br /><sub><b>boris-kuz</b></sub></a><br /><a href="#maintenance-boris-kuz" title="Maintenance">🚧</a></td>
|
||||
<td align="center"><a href="https://github.com/Epixu"><img src="https://avatars.githubusercontent.com/u/1529601?v=4" width="100px;" alt=""/><br /><sub><b>Dimo Markov</b></sub></a><br /><a href="#maintenance-Epixu" title="Maintenance">🚧</a></td>
|
||||
<td align="center"><a href="https://dhbloo.github.io/"><img src="https://avatars.githubusercontent.com/u/32353216?v=4" width="100px;" alt=""/><br /><sub><b>dblue</b></sub></a><br /><a href="#maintenance-dhbloo" title="Maintenance">🚧</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/zekehul"><img src="https://avatars.githubusercontent.com/u/8780526?v=4" width="100px;" alt=""/><br /><sub><b>zekehul</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=zekehul" title="Code">💻</a> <a href="#maintenance-zekehul" title="Maintenance">🚧</a></td>
|
||||
<td align="center"><a href="https://open-cells.com"><img src="https://avatars.githubusercontent.com/u/40661368?v=4" width="100px;" alt=""/><br /><sub><b>Laurent Thomas</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=LaurentThomas" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/maxbachmann"><img src="https://avatars.githubusercontent.com/u/44199644?v=4" width="100px;" alt=""/><br /><sub><b>Max Bachmann</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=maxbachmann" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/psaab"><img src="https://avatars.githubusercontent.com/u/196946?v=4" width="100px;" alt=""/><br /><sub><b>psaab</b></sub></a><br /><a href="#maintenance-psaab" title="Maintenance">🚧</a></td>
|
||||
<td align="center"><a href="http://superduper.net/"><img src="https://avatars.githubusercontent.com/u/515813?v=4" width="100px;" alt=""/><br /><sub><b>Sam Clegg</b></sub></a><br /><a href="#maintenance-sbc100" title="Maintenance">🚧</a></td>
|
||||
<td align="center"><a href="https://twitter.com/tlively52"><img src="https://avatars.githubusercontent.com/u/7121787?v=4" width="100px;" alt=""/><br /><sub><b>Thomas Lively</b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3Atlively" title="Bug reports">🐛</a> <a href="#ideas-tlively" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-tlively" title="Maintenance">🚧</a></td>
|
||||
<td align="center"><a href="http://blog.coderzh.com/"><img src="https://avatars.githubusercontent.com/u/329164?v=4" width="100px;" alt=""/><br /><sub><b>coderzh</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=coderzh" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=coderzh" title="Tests">⚠️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/k-dominik"><img src="https://avatars.githubusercontent.com/u/24434157?v=4" width="100px;" alt=""/><br /><sub><b>Dominik Kutra</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=k-dominik" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=k-dominik" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/Lithrein"><img src="https://avatars.githubusercontent.com/u/207981?v=4" width="100px;" alt=""/><br /><sub><b>Lithrein</b></sub></a><br /><a href="#maintenance-Lithrein" title="Maintenance">🚧</a></td>
|
||||
<td align="center"><a href="https://github.com/quyykk"><img src="https://avatars.githubusercontent.com/u/85879619?v=4" width="100px;" alt=""/><br /><sub><b>Nick</b></sub></a><br /><a href="#maintenance-quyykk" title="Maintenance">🚧</a></td>
|
||||
<td align="center"><a href="https://github.com/thomasdwu"><img src="https://avatars.githubusercontent.com/u/6819659?v=4" width="100px;" alt=""/><br /><sub><b>thomasdwu</b></sub></a><br /><a href="#maintenance-thomasdwu" title="Maintenance">🚧</a></td>
|
||||
<td align="center"><a href="https://github.com/Remnant44"><img src="https://avatars.githubusercontent.com/u/54461740?v=4" width="100px;" alt=""/><br /><sub><b>Stephen</b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3ARemnant44" title="Bug reports">🐛</a></td>
|
||||
<td align="center"><a href="https://github.com/johnplatts"><img src="https://avatars.githubusercontent.com/u/28941113?v=4" width="100px;" alt=""/><br /><sub><b>John Platts</b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3Ajohnplatts" title="Bug reports">🐛</a></td>
|
||||
<td align="center"><a href="https://github.com/tycho"><img src="https://avatars.githubusercontent.com/u/29616?v=4" width="100px;" alt=""/><br /><sub><b>Steven Noonan</b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3Atycho" title="Bug reports">🐛</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/p0nce"><img src="https://avatars.githubusercontent.com/u/1067485?v=4" width="100px;" alt=""/><br /><sub><b>p0nce </b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3Ap0nce" title="Bug reports">🐛</a></td>
|
||||
<td align="center"><a href="https://bonedaddy.net/pabs3/"><img src="https://avatars.githubusercontent.com/u/328602?v=4" width="100px;" alt=""/><br /><sub><b>Paul Wise</b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3Apabs3" title="Bug reports">🐛</a></td>
|
||||
<td align="center"><a href="https://github.com/easyaspi314"><img src="https://avatars.githubusercontent.com/u/6258309?v=4" width="100px;" alt=""/><br /><sub><b>easyaspi314 (Devin)</b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3Aeasyaspi314" title="Bug reports">🐛</a> <a href="https://github.com/nemequ/simde/commits?author=easyaspi314" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/JonLiu1993"><img src="https://avatars.githubusercontent.com/u/63675417?v=4" width="100px;" alt=""/><br /><sub><b>JonLiu1993</b></sub></a><br /><a href="#platform-JonLiu1993" title="Packaging/porting to new platform">📦</a></td>
|
||||
<td align="center"><a href="https://github.com/Cheney-W"><img src="https://avatars.githubusercontent.com/u/38240633?v=4" width="100px;" alt=""/><br /><sub><b>Cheney Wang</b></sub></a><br /><a href="#platform-Cheney-W" title="Packaging/porting to new platform">📦</a></td>
|
||||
<td align="center"><a href="http://myd7349.github.io/"><img src="https://avatars.githubusercontent.com/u/5435649?v=4" width="100px;" alt=""/><br /><sub><b>myd7349 </b></sub></a><br /><a href="#platform-myd7349" title="Packaging/porting to new platform">📦</a></td>
|
||||
<td align="center"><a href="https://github.com/chausner"><img src="https://avatars.githubusercontent.com/u/15180557?v=4" width="100px;" alt=""/><br /><sub><b>chausner</b></sub></a><br /><a href="#platform-chausner" title="Packaging/porting to new platform">📦</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/yyctw"><img src="https://avatars.githubusercontent.com/u/45251297?v=4" width="100px;" alt=""/><br /><sub><b>Yi-Yen Chung</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=yyctw" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=yyctw" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/wewe5215"><img src="https://avatars.githubusercontent.com/u/76145143?v=4" width="100px;" alt=""/><br /><sub><b>Chi-Wei Chu</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=wewe5215" title="Code">💻</a> <a href="https://github.com/nemequ/simde/commits?author=wewe5215" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/M-HT"><img src="https://avatars.githubusercontent.com/u/12173952?v=4" width="100px;" alt=""/><br /><sub><b>M-HT</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=M-HT" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://gottliebtfreitag.de"><img src="https://avatars.githubusercontent.com/u/456045?v=4" width="100px;" alt=""/><br /><sub><b>Simon Gene Gottlieb</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=SGSSGene" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://bsc.fu-berlin.de"><img src="https://avatars.githubusercontent.com/u/6008722?v=4" width="100px;" alt=""/><br /><sub><b>Chris Bielow</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=cbielow" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/XiWeiGu"><img src="https://avatars.githubusercontent.com/u/41367273?v=4" width="100px;" alt=""/><br /><sub><b>gu xiwei</b></sub></a><br /><a href="#platform-XiWeiGu" title="Packaging/porting to new platform">📦</a> <a href="https://github.com/nemequ/simde/commits?author=XiWeiGu" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/Vineg"><img src="https://avatars.githubusercontent.com/u/1757455?v=4" width="100px;" alt=""/><br /><sub><b>George Vinokhodov</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=Vineg" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/Coeur"><img src="https://avatars.githubusercontent.com/u/839992?v=4" width="100px;" alt=""/><br /><sub><b>Cœur</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=Coeur" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/Proudsalsa"><img src="https://avatars.githubusercontent.com/u/103449548?v=4" width="100px;" alt=""/><br /><sub><b>Florian @Proudsalsa</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=Proudsalsa" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/thomas-schlichter"><img src="https://avatars.githubusercontent.com/u/106664923?v=4" width="100px;" alt=""/><br /><sub><b>Thomas Schlichter</b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3Athomas-schlichter" title="Bug reports">🐛</a> <a href="https://github.com/nemequ/simde/commits?author=thomas-schlichter" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/AymenQ"><img src="https://avatars.githubusercontent.com/u/3706283?v=4" width="100px;" alt=""/><br /><sub><b>Aymen Qader</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=AymenQ" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/eric900115"><img src="https://avatars.githubusercontent.com/u/77781328?v=4" width="100px;" alt=""/><br /><sub><b>Eric Su</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=eric900115" title="Code">💻</a> <a href="#platform-eric900115" title="Packaging/porting to new platform">📦</a></td>
|
||||
<td align="center"><a href="https://github.com/Torinde"><img src="https://avatars.githubusercontent.com/u/97228894?v=4" width="100px;" alt=""/><br /><sub><b>Torinde</b></sub></a><br /><a href="https://github.com/nemequ/simde/issues?q=author%3ATorinde" title="Bug reports">🐛</a> <a href="https://github.com/nemequ/simde/commits?author=Torinde" title="Documentation">📖</a> <a href="#ideas-Torinde" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center"><a href="https://www.linkedin.com/in/yanghauyuan/"><img src="https://avatars.githubusercontent.com/u/13924801?v=4" width="100px;" alt=""/><br /><sub><b>Yang Hau</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=howjmay" title="Code">💻</a> <a href="#ideas-howjmay" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/zengdage"><img src="https://avatars.githubusercontent.com/u/16076103?v=4" width="100px;" alt=""/><br /><sub><b>Zhijin Zeng</b></sub></a><br /><a href="https://github.com/nemequ/simde/commits?author=zengdage" title="Code">💻</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- markdownlint-enable -->
|
||||
<!-- prettier-ignore-end -->
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
|
||||
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind are welcome!
|
||||
Vendored
+59
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
# amalgamate.py
|
||||
# Written by Evan Nemerson <evan@nemerson.com>
|
||||
#
|
||||
# To the extent possible under law, the author(s) have dedicated all
|
||||
# copyright and related and neighboring rights to this software to
|
||||
# the public domain worldwide. This software is distributed without
|
||||
# any warranty.
|
||||
#
|
||||
# For details, see <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
# Quick and dirty script to amalgamate C into a single file. Includes
|
||||
# using angle brackets (#include <foo.h>) will be preserved, but for
|
||||
# includes using double quotes (#include "foo.h") the file will be
|
||||
# included by this script.
|
||||
#
|
||||
# If you make any improvements please report them in the SIMDe issue
|
||||
# tracker at <https://github.com/simd-everywhere/simde/issues> or
|
||||
# directly to the author so they can be merged back into the original
|
||||
# version.
|
||||
|
||||
import sys, re, os, subprocess
|
||||
|
||||
amalgamate_include = re.compile('^\\s*#\\s*include\\s+\\"([^)]+)\\"\\s$')
|
||||
already_included = []
|
||||
|
||||
def amalgamate(filename, stream):
|
||||
full_path = os.path.realpath(os.path.realpath(filename))
|
||||
srcdir = os.path.dirname(full_path)
|
||||
|
||||
print('/* AUTOMATICALLY GENERATED FILE, DO NOT MODIFY */')
|
||||
|
||||
git_id = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=srcdir).decode().strip()
|
||||
print("/* {:s} */".format(git_id))
|
||||
|
||||
if full_path not in already_included:
|
||||
already_included.insert(-1, full_path)
|
||||
with open(filename) as input_file:
|
||||
stream.write('/* :: Begin ' + os.path.relpath(full_path) + ' :: */\n')
|
||||
|
||||
for source_line in input_file:
|
||||
a9e_inc_m = amalgamate_include.match(source_line)
|
||||
if a9e_inc_m:
|
||||
amalgamate(os.path.join(srcdir, a9e_inc_m.group(1)), stream)
|
||||
else:
|
||||
stream.write(source_line)
|
||||
|
||||
stream.write('/* :: End ' + os.path.relpath(full_path) + ' :: */\n')
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
sys.stderr.write("USAGE: " + sys.argv[0] + ' SOURCE_FILE\n\n')
|
||||
sys.stderr.write("This will print a copy of $SOURCE_FILE to stdout, while replacing\n")
|
||||
sys.stderr.write("all '#include AMALGAMATE(file)' lines with copies of file.\n")
|
||||
|
||||
sys.exit(1)
|
||||
|
||||
amalgamate(sys.argv[1], sys.stdout)
|
||||
Vendored
+3
@@ -0,0 +1,3 @@
|
||||
comment: false
|
||||
ignore:
|
||||
- "test"
|
||||
Vendored
+122
@@ -0,0 +1,122 @@
|
||||
# Dockerfile for SIMDe development
|
||||
|
||||
ARG RELEASE=testing
|
||||
FROM debian:${RELEASE}-slim
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG QEMU_GIT=n
|
||||
ARG ARCHS="arm64 armel armhf i386 mips64el ppc64el s390x riscv64"
|
||||
|
||||
RUN \
|
||||
apt-get update -y && \
|
||||
apt-get upgrade -y && \
|
||||
apt-get install -y netselect-apt && \
|
||||
if netselect-apt -n ${release}; then \
|
||||
mv sources.list /etc/apt/sources.list; \
|
||||
fi
|
||||
|
||||
COPY docker/bin /tmp/simde-bin
|
||||
RUN \
|
||||
for script in simde-reset-build.sh; do \
|
||||
ln -s /usr/local/src/simde/docker/bin/"${script}" /usr/bin/"${script}"; \
|
||||
done
|
||||
|
||||
# Common packages
|
||||
RUN \
|
||||
apt-get update -y && \
|
||||
apt-get upgrade -y && \
|
||||
apt-get install -yq --no-install-recommends \
|
||||
git build-essential vim \
|
||||
ccache ninja-build \
|
||||
'^clang-[0-9\.]+$' \
|
||||
'^llvm-[0-9\.]+$' \
|
||||
'^g(cc|\+\+)-[0-9\.]+$' \
|
||||
gdb valgrind \
|
||||
binfmt-support qemu-user-static \
|
||||
creduce screen htop parallel nano rsync strace \
|
||||
npm libsleef-dev \
|
||||
pipx wget curl
|
||||
|
||||
# Meson on stable is too old, and we want to make sure we keep 0.55
|
||||
# working for a while.
|
||||
RUN pipx install meson==0.55.1
|
||||
|
||||
# GCC cross-compilers
|
||||
RUN \
|
||||
apt-get update -y && \
|
||||
apt-get upgrade -y && \
|
||||
apt-get install -y apt-file && \
|
||||
apt-file update
|
||||
RUN \
|
||||
PACKAGES_TO_INSTALL=""; \
|
||||
for ARCH in ${ARCHS}; do \
|
||||
PACKAGES_TO_INSTALL="${PACKAGES_TO_INSTALL} libc6-${ARCH}-cross libstdc++-[0-9]*-dev-${ARCH}-cross"; \
|
||||
PACKAGES_TO_INSTALL="${PACKAGES_TO_INSTALL} $(apt-file search -x "/usr/bin/$(/tmp/simde-bin/arch2gcc.sh ${ARCH})-(ar|g(cc|\+\+)-[0-9\.]+)" | awk -F: '{ print $1}')"; \
|
||||
done; \
|
||||
echo ${PACKAGES_TO_INSTALL} ; \
|
||||
apt-get install -yq $(echo ${PACKAGES_TO_INSTALL} | tr ' ' '\n' | grep -v -- -9- | tr '\n' ' ')
|
||||
|
||||
ENV PATH="/usr/lib/ccache:$PATH:/root/.local/bin:/root/.jsvu/bin"
|
||||
|
||||
# ICC
|
||||
RUN \
|
||||
apt-get update -y && \
|
||||
apt-get upgrade -y && \
|
||||
apt-get install -yq gpg && \
|
||||
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
|
||||
| gpg --dearmor > /usr/share/keyrings/oneapi-archive-keyring.gpg && \
|
||||
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" > /etc/apt/sources.list.d/oneAPI.list && \
|
||||
apt-get update && \
|
||||
apt-get install -yq --no-install-recommends intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-compiler-dpcpp-cpp && \
|
||||
for exe in icc icpc icx icpx; do \
|
||||
printf '#!/bin/bash\nARGS="$@"\nsource /opt/intel/oneapi/compiler/latest/env/vars.sh >/dev/null\n%s ${ARGS}\n' "${exe}" > /usr/bin/"${exe}" && \
|
||||
chmod 0755 /usr/bin/"${exe}" ; \
|
||||
done
|
||||
|
||||
# # xlc -- Install fails.
|
||||
# # Once IBM releases a version for Ubuntu Focal (20.04) I hope I can
|
||||
# # get this working.
|
||||
# RUN \
|
||||
# curl -s 'https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/public.gpg' | apt-key add - && \
|
||||
# echo "deb [arch=ppc64el] https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/ bionic main" > /etc/apt/sources.list.d/xlc.list && \
|
||||
# apt-get update && \
|
||||
# XLC_VERSION="$(apt-cache search '^xlc\.[0-9]+\.[0-9]+\.[0-9]+$' | awk '{ print substr($1, 5) }')" && \
|
||||
# apt-get install "xlc.${XLC_VERSION}:ppc64el" "xlc-license-community.${XLC_VERSION}:ppc64el" && \
|
||||
# /opt/ibm/xlC/${XLC_VERSION}/bin/xlc_configure <<< 1 >/dev/null
|
||||
|
||||
# Intel SDE
|
||||
COPY test/download-sde.sh /tmp/simde-bin/download-sde.sh
|
||||
RUN \
|
||||
"/tmp/simde-bin/download-sde.sh" "/opt/intel/sde" && \
|
||||
for executable in sde sde64; do \
|
||||
ln -s "/opt/intel/sde/${executable}" "/usr/bin/${executable}"; \
|
||||
done
|
||||
|
||||
# Emscripten
|
||||
RUN \
|
||||
git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk && \
|
||||
cd /opt/emsdk && ./emsdk install tot && ./emsdk activate tot && \
|
||||
ln -s /opt/emsdk/upstream/bin/wasm-ld /usr/bin/wasm-ld && \
|
||||
npm install jsvu -g && jsvu --os=linux64 --engines=v8 && ln -s "/root/.jsvu/v8" "/usr/bin/v8"
|
||||
|
||||
# Meson cross files
|
||||
RUN \
|
||||
mkdir -p "/usr/local/share/meson/cross" && ln -s /usr/local/src/simde/docker/cross-files /usr/local/share/meson/cross/simde
|
||||
|
||||
# Install QEMU git (necessary for MIPS)
|
||||
RUN \
|
||||
if [ ${QEMU_GIT} = "y" ]; then \
|
||||
apt-get install -y pkg-config libglib2.0-dev libpixman-1-dev libaio-dev \
|
||||
libbpf-dev libdw-dev libcapstone-dev flex bison \
|
||||
liburing-dev libseccomp-dev libcap-ng-dev libzstd-dev libudev-dev libgnutls28-dev linux-headers-amd64 && \
|
||||
git clone https://gitlab.com/qemu-project/qemu.git /usr/local/src/qemu && \
|
||||
mkdir -p /usr/local/src/qemu/build && cd /usr/local/src/qemu/build && \
|
||||
../configure --prefix=/opt/qemu && \
|
||||
make -j$(nproc) && \
|
||||
make install; \
|
||||
rm -rf /usr/local/src/qemu; \
|
||||
fi
|
||||
|
||||
RUN mkdir -p /opt/simde
|
||||
WORKDIR /opt/simde
|
||||
ENV CCACHE_DIR=/opt/simde/.ccache CCACHE_COMPRESS=1
|
||||
Vendored
+112
@@ -0,0 +1,112 @@
|
||||
# Dockerfile for SIMDe development
|
||||
|
||||
FROM ubuntu:focal
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG QEMU_GIT=n
|
||||
ARG ARCHS="arm64"
|
||||
#"arm64 armel armhf i386 mips64el ppc64el s390x riscv64"
|
||||
|
||||
COPY docker/bin /tmp/simde-bin
|
||||
RUN \
|
||||
for script in simde-reset-build.sh; do \
|
||||
ln -s /usr/local/src/simde/docker/bin/"${script}" /usr/bin/"${script}"; \
|
||||
done
|
||||
|
||||
# Common packages
|
||||
RUN \
|
||||
apt-get update -y && \
|
||||
apt-get upgrade -y && \
|
||||
apt-get install -yq --no-install-recommends \
|
||||
git build-essential vim \
|
||||
ccache ninja-build \
|
||||
'^clang-[0-9\.]+$' \
|
||||
'^llvm-[0-9\.]+$' \
|
||||
'^g(cc|\+\+)-[0-9\.]+$' \
|
||||
gdb valgrind \
|
||||
binfmt-support qemu-user-static \
|
||||
creduce screen htop parallel nano rsync strace \
|
||||
npm libsleef-dev \
|
||||
pipx wget curl
|
||||
|
||||
# Meson on stable is too old, and we want to make sure we keep 0.55
|
||||
# working for a while.
|
||||
RUN pipx install meson==0.55.1
|
||||
|
||||
# GCC cross-compilers
|
||||
RUN \
|
||||
apt-get update -y && \
|
||||
apt-get upgrade -y && \
|
||||
apt-get install -y apt-file && \
|
||||
apt-file update
|
||||
RUN \
|
||||
PACKAGES_TO_INSTALL=""; \
|
||||
for ARCH in ${ARCHS}; do \
|
||||
PACKAGES_TO_INSTALL="${PACKAGES_TO_INSTALL} libc6-${ARCH}-cross libstdc++-[0-9]*-dev-${ARCH}-cross"; \
|
||||
PACKAGES_TO_INSTALL="${PACKAGES_TO_INSTALL} $(apt-file search -x "/usr/bin/$(/tmp/simde-bin/arch2gcc.sh ${ARCH})-(ar|g(cc|\+\+)-[0-9\.]+)" | awk -F: '{ print $1}')"; \
|
||||
done; \
|
||||
echo ${PACKAGES_TO_INSTALL} ; \
|
||||
apt-get install -yq ${PACKAGES_TO_INSTALL}
|
||||
|
||||
ENV PATH="/usr/lib/ccache:$PATH:/root/.local/bin:/root/.jsvu/bin"
|
||||
|
||||
# ICC
|
||||
RUN \
|
||||
apt-get update -y && \
|
||||
apt-get upgrade -y && \
|
||||
apt-get install -yq gpg && \
|
||||
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
|
||||
| gpg --dearmor > /usr/share/keyrings/oneapi-archive-keyring.gpg && \
|
||||
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" > /etc/apt/sources.list.d/oneAPI.list && \
|
||||
apt-get update && \
|
||||
apt-get install -yq --no-install-recommends intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-compiler-dpcpp-cpp && \
|
||||
for exe in icc icpc icx icpx; do \
|
||||
printf '#!/bin/bash\nARGS="$@"\nsource /opt/intel/oneapi/compiler/latest/env/vars.sh >/dev/null\n%s ${ARGS}\n' "${exe}" > /usr/bin/"${exe}" && \
|
||||
chmod 0755 /usr/bin/"${exe}" ; \
|
||||
done
|
||||
|
||||
# # xlc -- Install fails.
|
||||
# # Once IBM releases a version for Ubuntu Focal (20.04) I hope I can
|
||||
# # get this working.
|
||||
# RUN \
|
||||
# curl -s 'https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/public.gpg' | apt-key add - && \
|
||||
# echo "deb [arch=ppc64el] https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/ bionic main" > /etc/apt/sources.list.d/xlc.list && \
|
||||
# apt-get update && \
|
||||
# XLC_VERSION="$(apt-cache search '^xlc\.[0-9]+\.[0-9]+\.[0-9]+$' | awk '{ print substr($1, 5) }')" && \
|
||||
# apt-get install "xlc.${XLC_VERSION}:ppc64el" "xlc-license-community.${XLC_VERSION}:ppc64el" && \
|
||||
# /opt/ibm/xlC/${XLC_VERSION}/bin/xlc_configure <<< 1 >/dev/null
|
||||
|
||||
# Intel SDE
|
||||
COPY test/download-sde.sh /tmp/simde-bin/download-sde.sh
|
||||
RUN \
|
||||
"/tmp/simde-bin/download-sde.sh" "/opt/intel/sde" && \
|
||||
for executable in sde sde64; do \
|
||||
ln -s "/opt/intel/sde/${executable}" "/usr/bin/${executable}"; \
|
||||
done
|
||||
|
||||
# Emscripten
|
||||
RUN \
|
||||
git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk && \
|
||||
cd /opt/emsdk && ./emsdk install tot && ./emsdk activate tot && \
|
||||
ln -s /opt/emsdk/upstream/bin/wasm-ld /usr/bin/wasm-ld && \
|
||||
npm install jsvu -g && jsvu --os=linux64 --engines=v8 && ln -s "/root/.jsvu/v8" "/usr/bin/v8"
|
||||
|
||||
# Meson cross files
|
||||
RUN \
|
||||
mkdir -p "/usr/local/share/meson/cross" && ln -s /usr/local/src/simde/docker/cross-files /usr/local/share/meson/cross/simde
|
||||
|
||||
# Install QEMU git (necessary for MIPS)
|
||||
RUN \
|
||||
if [ ${QEMU_GIT} = "y" ]; then \
|
||||
apt-get install -y pkg-config libglib2.0-dev libpixman-1-dev && \
|
||||
git clone https://gitlab.com/qemu-project/qemu.git /usr/local/src/qemu && \
|
||||
mkdir -p /usr/local/src/qemu/build && cd /usr/local/src/qemu/build && \
|
||||
../configure --prefix=/opt/qemu && \
|
||||
make -j$(nproc) && \
|
||||
make install; \
|
||||
rm -rf /usr/local/src/qemu; \
|
||||
fi
|
||||
|
||||
RUN mkdir -p /opt/simde
|
||||
WORKDIR /opt/simde
|
||||
ENV CCACHE_DIR=/opt/simde/.ccache CCACHE_COMPRESS=1
|
||||
+112
@@ -0,0 +1,112 @@
|
||||
# Dockerfile for SIMDe development
|
||||
|
||||
FROM ubuntu:bionic
|
||||
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
ARG QEMU_GIT=n
|
||||
ARG ARCHS="arm64"
|
||||
#"arm64 armel armhf i386 mips64el ppc64el s390x riscv64"
|
||||
|
||||
COPY docker/bin /tmp/simde-bin
|
||||
RUN \
|
||||
for script in simde-reset-build.sh; do \
|
||||
ln -s /usr/local/src/simde/docker/bin/"${script}" /usr/bin/"${script}"; \
|
||||
done
|
||||
|
||||
# Common packages
|
||||
RUN \
|
||||
apt-get update -y && \
|
||||
apt-get upgrade -y && \
|
||||
apt-get install -yq --no-install-recommends \
|
||||
git build-essential vim \
|
||||
ccache ninja-build \
|
||||
'^clang-[0-9\.]+$' \
|
||||
'^llvm-[0-9\.]+$' \
|
||||
'^g(cc|\+\+)-[0-9\.]+$' \
|
||||
gdb valgrind \
|
||||
binfmt-support qemu-user-static \
|
||||
creduce screen htop parallel nano rsync strace \
|
||||
npm \
|
||||
python3-pip wget curl python3-setuptools python3-wheel
|
||||
|
||||
# Meson on stable is too old, and we want to make sure we keep 0.55
|
||||
# working for a while.
|
||||
RUN pip3 install meson==0.55.1
|
||||
|
||||
# GCC cross-compilers
|
||||
RUN \
|
||||
apt-get update -y && \
|
||||
apt-get upgrade -y && \
|
||||
apt-get install -y apt-file && \
|
||||
apt-file update
|
||||
RUN \
|
||||
PACKAGES_TO_INSTALL=""; \
|
||||
for ARCH in ${ARCHS}; do \
|
||||
PACKAGES_TO_INSTALL="${PACKAGES_TO_INSTALL} libc6-${ARCH}-cross libstdc++-[0-9]*-dev-${ARCH}-cross"; \
|
||||
PACKAGES_TO_INSTALL="${PACKAGES_TO_INSTALL} $(apt-file search -x "/usr/bin/$(/tmp/simde-bin/arch2gcc.sh ${ARCH})-(ar|g(cc|\+\+)-[0-9\.]+)" | awk -F: '{ print $1}')"; \
|
||||
done; \
|
||||
echo ${PACKAGES_TO_INSTALL} ; \
|
||||
apt-get install -yq ${PACKAGES_TO_INSTALL}
|
||||
|
||||
ENV PATH="/usr/lib/ccache:$PATH:/root/.local/bin:/root/.jsvu/bin"
|
||||
|
||||
# ICC
|
||||
# RUN \
|
||||
# apt-get update -y && \
|
||||
# apt-get upgrade -y && \
|
||||
# apt-get install -yq gpg && \
|
||||
# wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB \
|
||||
# | gpg --dearmor > /usr/share/keyrings/oneapi-archive-keyring.gpg && \
|
||||
# echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" > /etc/apt/sources.list.d/oneAPI.list && \
|
||||
# apt-get update && \
|
||||
# apt-get install -yq --no-install-recommends intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-compiler-dpcpp-cpp && \
|
||||
# for exe in icc icpc icx icpx; do \
|
||||
# printf '#!/bin/bash\nARGS="$@"\nsource /opt/intel/oneapi/compiler/latest/env/vars.sh >/dev/null\n%s ${ARGS}\n' "${exe}" > /usr/bin/"${exe}" && \
|
||||
# chmod 0755 /usr/bin/"${exe}" ; \
|
||||
# done
|
||||
|
||||
# # xlc -- Install fails.
|
||||
# # Once IBM releases a version for Ubuntu Focal (20.04) I hope I can
|
||||
# # get this working.
|
||||
# RUN \
|
||||
# curl -s 'https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/public.gpg' | apt-key add - && \
|
||||
# echo "deb [arch=ppc64el] https://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/ubuntu/ bionic main" > /etc/apt/sources.list.d/xlc.list && \
|
||||
# apt-get update && \
|
||||
# XLC_VERSION="$(apt-cache search '^xlc\.[0-9]+\.[0-9]+\.[0-9]+$' | awk '{ print substr($1, 5) }')" && \
|
||||
# apt-get install "xlc.${XLC_VERSION}:ppc64el" "xlc-license-community.${XLC_VERSION}:ppc64el" && \
|
||||
# /opt/ibm/xlC/${XLC_VERSION}/bin/xlc_configure <<< 1 >/dev/null
|
||||
|
||||
# Intel SDE
|
||||
COPY test/download-sde.sh /tmp/simde-bin/download-sde.sh
|
||||
RUN \
|
||||
"/tmp/simde-bin/download-sde.sh" "/opt/intel/sde" && \
|
||||
for executable in sde sde64; do \
|
||||
ln -s "/opt/intel/sde/${executable}" "/usr/bin/${executable}"; \
|
||||
done
|
||||
|
||||
# Emscripten
|
||||
# RUN \
|
||||
# git clone https://github.com/emscripten-core/emsdk.git /opt/emsdk && \
|
||||
# cd /opt/emsdk && ./emsdk install tot && ./emsdk activate tot && \
|
||||
# ln -s /opt/emsdk/upstream/bin/wasm-ld /usr/bin/wasm-ld && \
|
||||
# npm install jsvu -g && jsvu --os=linux64 --engines=v8 && ln -s "/root/.jsvu/v8" "/usr/bin/v8"
|
||||
|
||||
# Meson cross files
|
||||
RUN \
|
||||
mkdir -p "/usr/local/share/meson/cross" && ln -s /usr/local/src/simde/docker/cross-files /usr/local/share/meson/cross/simde
|
||||
|
||||
# Install QEMU git (necessary for MIPS)
|
||||
RUN \
|
||||
if [ ${QEMU_GIT} = "y" ]; then \
|
||||
apt-get install -y pkg-config libglib2.0-dev libpixman-1-dev && \
|
||||
git clone https://gitlab.com/qemu-project/qemu.git /usr/local/src/qemu && \
|
||||
mkdir -p /usr/local/src/qemu/build && cd /usr/local/src/qemu/build && \
|
||||
../configure --prefix=/opt/qemu && \
|
||||
make -j$(nproc) && \
|
||||
make install; \
|
||||
rm -rf /usr/local/src/qemu; \
|
||||
fi
|
||||
|
||||
RUN mkdir -p /opt/simde
|
||||
WORKDIR /opt/simde
|
||||
ENV CCACHE_DIR=/opt/simde/.ccache CCACHE_COMPRESS=1
|
||||
Vendored
+50
@@ -0,0 +1,50 @@
|
||||
# SIMDe Development Container
|
||||
|
||||
The basic idea is to set up a Debian system with lots of different
|
||||
compilers and emulators for different architectures and configure
|
||||
multiple builds in different directories.
|
||||
|
||||
Note that there are also several docker files in the test/
|
||||
subdirectory. These can be used to test other operating systems,
|
||||
especially older compilers which aren't supported on Debian testing
|
||||
anymore.
|
||||
|
||||
To use this, just run the `simde-dev.sh` script and go grab ~a cup of
|
||||
coffee~ lunch (it will take a while, and download a *lot* of packages).
|
||||
Once the container is ready it will drop you into a bash shell in
|
||||
`/opt/simde`; this is the build directory.
|
||||
|
||||
This will bind the parent directory (the root of the SIMDe checkout)
|
||||
to `/usr/local/src/simde`; any changes to either will propagate to the
|
||||
other, meaning you can continue using your normal development
|
||||
environment and just re-run ninja in the container to (re)build SIMDe.
|
||||
|
||||
If you would like build directories to persist across multiple
|
||||
invocations of `simde-dev.sh`, you can set the `PERSISTENT_BUILD_DIR`
|
||||
to a directory on the host filesystem and it will be mapped to
|
||||
`/opt/simde` in the container.
|
||||
|
||||
Once your container is finished building, just `simde-reset-build.sh`
|
||||
and it should be populated with a bunch of subdirectories which you can
|
||||
build with ninja. For example, `ninja -C gcc-10` will build SIMDe
|
||||
using GCC 10. If you want to run the tests, `ninja -C gcc-10 test`
|
||||
(or `cd gcc-10 && ninja test`).
|
||||
|
||||
You can also run `simde-reset-build.sh build-name` to (re)generate a
|
||||
single build.
|
||||
|
||||
# Debian Version
|
||||
|
||||
By default, we use Debian testing. If you would like to use Debian
|
||||
unstable instead, just run `simde-dev.sh unstable`.
|
||||
|
||||
## Altering or Adding Builds
|
||||
|
||||
Each build has an associated Meson cross file (see the `cross-files/`
|
||||
subdirectory). We kind of abuse these by adding flags like `-Wextra`,
|
||||
`-Werror`, `-march=...`, *etc.*, which aren't really about
|
||||
cross-compilation. However, you can add or remove C/C++ flags in the
|
||||
cross files, or if you want to *add* flags you can just put them in
|
||||
the `CFLAGS`/`CXXFLAGS` environment variables and reconfigure the
|
||||
build. You can also create a new cross file with your preferred
|
||||
configuration.
|
||||
Vendored
+65
@@ -0,0 +1,65 @@
|
||||
#!/bin/sh
|
||||
|
||||
case "${1}" in
|
||||
"alpha")
|
||||
echo "alpha-linux-gnu"
|
||||
;;
|
||||
"amd64")
|
||||
echo "x86_64-linux-gnu"
|
||||
;;
|
||||
"arm64")
|
||||
echo "aarch64-linux-gnu"
|
||||
;;
|
||||
"armhf")
|
||||
echo "arm-linux-gnueabihf"
|
||||
;;
|
||||
"armel")
|
||||
echo "arm-linux-gnueabi"
|
||||
;;
|
||||
"hppa")
|
||||
echo "hppa-linux-gnu"
|
||||
;;
|
||||
"hppa64")
|
||||
echo "hppa64-linux-gnu"
|
||||
;;
|
||||
"i386")
|
||||
echo "i686-linux-gnu"
|
||||
;;
|
||||
"m68k")
|
||||
echo "m68k-linux-gnu"
|
||||
;;
|
||||
"mips64el")
|
||||
echo "mips64el-linux-gnuabi64"
|
||||
;;
|
||||
"mipsel")
|
||||
echo "mips64-linux-gnuabi64"
|
||||
;;
|
||||
"ppc")
|
||||
echo "powerpc-linux-gnu"
|
||||
;;
|
||||
"ppc64")
|
||||
echo "powerpc64-linux-gnu"
|
||||
;;
|
||||
"ppc64el")
|
||||
echo "powerpc64le-linux-gnu"
|
||||
;;
|
||||
"riscv64")
|
||||
echo "riscv64-linux-gnu"
|
||||
;;
|
||||
"s390x")
|
||||
echo "s390x-linux-gnu"
|
||||
;;
|
||||
"sh4")
|
||||
echo "sh4-linux-gnu"
|
||||
;;
|
||||
"sparc64")
|
||||
echo "sparc64-linux-gnu"
|
||||
;;
|
||||
"x32")
|
||||
echo "x86_64-linux-gnux32"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown architecture: ${1}" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $# = 0 ]; then
|
||||
for crossfile in /usr/local/share/meson/cross/simde/*.cross; do
|
||||
basename "$crossfile" .cross
|
||||
done | xargs "$0"
|
||||
else
|
||||
while [ $# -gt 0 ]; do
|
||||
ninja -C /opt/simde-build/"$1" test || exit 1
|
||||
shift
|
||||
done
|
||||
fi
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
function configure {
|
||||
if [ -e "/opt/simde/${1}" ]; then
|
||||
rm -rf "/opt/simde/${1}";
|
||||
fi
|
||||
if [ -e "/usr/local/share/meson/cross/simde/${1}.cross" ]; then
|
||||
meson --cross-file="/usr/local/share/meson/cross/simde/${1}.cross" "/opt/simde/${1}" "/usr/local/src/simde"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ $# -gt 0 ]; then
|
||||
while [ $# -ge 1 ]; do
|
||||
configure "$1"
|
||||
|
||||
shift
|
||||
done
|
||||
else
|
||||
for cross in /usr/local/share/meson/cross/simde/*.cross; do
|
||||
target="$(basename "$cross" .cross)"
|
||||
if [ ! -e "/opt/simde/${target}" ]; then
|
||||
configure "$(basename "${target}" .cross)"
|
||||
fi
|
||||
done
|
||||
for target in "aarch64-clang-10" "emscripten"; do
|
||||
if [ ! -e "/opt/simde/${target}" ]; then
|
||||
configure "$(basename "${target}" .cross)"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-10'
|
||||
cpp = 'clang++-10'
|
||||
ar = 'llvm-ar-10'
|
||||
strip = 'llvm-strip-10'
|
||||
objcopy = 'llvm-objcopy-10'
|
||||
ld = 'llvm-ld-10'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-11'
|
||||
cpp = 'clang++-11'
|
||||
ar = 'llvm-ar-11'
|
||||
strip = 'llvm-strip-11'
|
||||
objcopy = 'llvm-objcopy-11'
|
||||
ld = 'llvm-ld-11'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-12'
|
||||
cpp = 'clang++-12'
|
||||
ar = 'llvm-ar-12'
|
||||
strip = 'llvm-strip-12'
|
||||
objcopy = 'llvm-objcopy-12'
|
||||
ld = 'llvm-ld-12'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-13'
|
||||
cpp = 'clang++-13'
|
||||
ar = 'llvm-ar-13'
|
||||
strip = 'llvm-strip-13'
|
||||
objcopy = 'llvm-objcopy-13'
|
||||
ld = 'llvm-ld-13'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-14'
|
||||
cpp = 'clang++-14'
|
||||
ar = 'llvm-ar-14'
|
||||
strip = 'llvm-strip-14'
|
||||
objcopy = 'llvm-objcopy-14'
|
||||
ld = 'llvm-ld-14'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-15'
|
||||
cpp = 'clang++-15'
|
||||
ar = 'llvm-ar-15'
|
||||
strip = 'llvm-strip-15'
|
||||
objcopy = 'llvm-objcopy-15'
|
||||
ld = 'llvm-ld-15'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+sve', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = 'aarch64-linux-gnu-gcc-10'
|
||||
cpp = 'aarch64-linux-gnu-g++-10'
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv8-a+sve', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv8-a+sve', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = 'aarch64-linux-gnu-gcc-11'
|
||||
cpp = 'aarch64-linux-gnu-g++-11'
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv8-a+sve', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv8-a+sve', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = 'aarch64-linux-gnu-gcc-12'
|
||||
cpp = 'aarch64-linux-gnu-g++-12'
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv8-a+sve', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv8-a+sve', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-10'
|
||||
cpp = 'clang++-10'
|
||||
ar = 'llvm-ar-10'
|
||||
strip = 'llvm-strip-10'
|
||||
objcopy = 'llvm-objcopy-10'
|
||||
ld = 'llvm-ld-10'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-11'
|
||||
cpp = 'clang++-11'
|
||||
ar = 'llvm-ar-11'
|
||||
strip = 'llvm-strip-11'
|
||||
objcopy = 'llvm-objcopy-11'
|
||||
ld = 'llvm-ld-11'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+sha3+dotprod+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+sha3+dotprod+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-12'
|
||||
cpp = 'clang++-12'
|
||||
ar = 'llvm-ar-12'
|
||||
strip = 'llvm-strip-12'
|
||||
objcopy = 'llvm-objcopy-12'
|
||||
ld = 'llvm-ld-12'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-13'
|
||||
cpp = 'clang++-13'
|
||||
ar = 'llvm-ar-13'
|
||||
strip = 'llvm-strip-13'
|
||||
objcopy = 'llvm-objcopy-13'
|
||||
ld = 'llvm-ld-13'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
|
||||
c_link_args = ['--target=aarch64-linux-gnu', '-Wl,-z,relro', '-Wl,-z,now']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu', '-Wl,-z,relro', '-Wl,-z,now']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-13'
|
||||
cpp = 'clang++-13'
|
||||
ar = 'llvm-ar-13'
|
||||
strip = 'llvm-strip-13'
|
||||
objcopy = 'llvm-objcopy-13'
|
||||
ld = 'llvm-ld-13'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-14'
|
||||
cpp = 'clang++-14'
|
||||
ar = 'llvm-ar-14'
|
||||
strip = 'llvm-strip-14'
|
||||
objcopy = 'llvm-objcopy-14'
|
||||
ld = 'llvm-ld-14'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
|
||||
c_link_args = ['--target=aarch64-linux-gnu', '-Wl,-z,relro', '-Wl,-z,now']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu', '-Wl,-z,relro', '-Wl,-z,now']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-14'
|
||||
cpp = 'clang++-14'
|
||||
ar = 'llvm-ar-14'
|
||||
strip = 'llvm-strip-14'
|
||||
objcopy = 'llvm-objcopy-14'
|
||||
ld = 'llvm-ld-14'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-15']
|
||||
cpp = ['ccache', 'clang++-15']
|
||||
ar = 'llvm-ar-15'
|
||||
strip = 'llvm-strip-15'
|
||||
objcopy = 'llvm-objcopy-15'
|
||||
ld = 'llvm-ld-15'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8.2-a+simd+crypto+crc+bf16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8.2-a+simd+crypto+crc+bf16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-15'
|
||||
cpp = 'clang++-15'
|
||||
ar = 'llvm-ar-15'
|
||||
strip = 'llvm-strip-15'
|
||||
objcopy = 'llvm-objcopy-15'
|
||||
ld = 'llvm-ld-15'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
|
||||
c_link_args = ['--target=aarch64-linux-gnu', '-Wl,-z,relro', '-Wl,-z,now']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu', '-Wl,-z,relro', '-Wl,-z,now']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-15'
|
||||
cpp = 'clang++-15'
|
||||
ar = 'llvm-ar-15'
|
||||
strip = 'llvm-strip-15'
|
||||
objcopy = 'llvm-objcopy-15'
|
||||
ld = 'llvm-ld-15'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-16']
|
||||
cpp = ['ccache', 'clang++-16']
|
||||
ar = 'llvm-ar-16'
|
||||
strip = 'llvm-strip-16'
|
||||
objcopy = 'llvm-objcopy-16'
|
||||
ld = 'llvm-ld-16'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc+bf16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+crypto+crc+bf16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-17']
|
||||
cpp = ['ccache', 'clang++-17']
|
||||
ar = 'llvm-ar-17'
|
||||
strip = 'llvm-strip-17'
|
||||
objcopy = 'llvm-objcopy-17'
|
||||
ld = 'llvm-ld-17'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv9.4-a+crypto+sha3+sm4', '-Wextra', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv9.4-a+crypto+sha3+sm4', '-Wextra', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-18']
|
||||
cpp = ['ccache', 'clang++-18']
|
||||
ar = 'llvm-ar-18'
|
||||
strip = 'llvm-strip-18'
|
||||
objcopy = 'llvm-objcopy-18'
|
||||
ld = 'llvm-ld-18'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv9.3-a+crypto+sha3+sm4', '-Wextra', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv9.3-a+crypto+sha3+sm4', '-Wextra', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-18']
|
||||
cpp = ['ccache', 'clang++-18']
|
||||
ar = 'llvm-ar-18'
|
||||
strip = 'llvm-strip-18'
|
||||
objcopy = 'llvm-objcopy-18'
|
||||
ld = 'llvm-ld-18'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,21 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-19']
|
||||
cpp = ['ccache', 'clang++-19']
|
||||
ar = 'llvm-ar-19'
|
||||
strip = 'llvm-strip-19'
|
||||
objcopy = 'llvm-objcopy-19'
|
||||
c_ld = 'lld'
|
||||
cpp_ld = 'lld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[built-in options]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv9.3-a+crypto+sha3+sm4', '-Wextra', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv9.3-a+crypto+sha3+sm4', '-Wextra', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,21 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-19']
|
||||
cpp = ['ccache', 'clang++-19']
|
||||
ar = 'llvm-ar-19'
|
||||
strip = 'llvm-strip-19'
|
||||
objcopy = 'llvm-objcopy-19'
|
||||
c_ld = 'lld'
|
||||
cpp_ld = 'lld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[built-in options]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,21 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-20']
|
||||
cpp = ['ccache', 'clang++-20']
|
||||
ar = 'llvm-ar-20'
|
||||
strip = 'llvm-strip-20'
|
||||
objcopy = 'llvm-objcopy-20'
|
||||
c_ld = 'lld'
|
||||
cpp_ld = 'lld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[built-in options]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv9.3-a+crypto+sha3+sm4+sve2-bitperm', '-Wextra', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv9.3-a+crypto+sha3+sm4+sve2-bitperm', '-Wextra', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,21 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-20']
|
||||
cpp = ['ccache', 'clang++-20']
|
||||
ar = 'llvm-ar-20'
|
||||
strip = 'llvm-strip-20'
|
||||
objcopy = 'llvm-objcopy-20'
|
||||
c_ld = 'lld'
|
||||
cpp_ld = 'lld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[built-in options]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,21 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-21']
|
||||
cpp = ['ccache', 'clang++-21']
|
||||
ar = 'llvm-ar-21'
|
||||
strip = 'llvm-strip-21'
|
||||
objcopy = 'llvm-objcopy-21'
|
||||
c_ld = 'lld'
|
||||
cpp_ld = 'lld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[built-in options]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv9.3-a+crypto+sha3+sm4+sve2-bitperm', '-Wextra', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default', '-Wno-c++-keyword']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv9.3-a+crypto+sha3+sm4+sve2-bitperm', '-Wextra', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default', '-Wno-c++-keyword']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,21 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-21']
|
||||
cpp = ['ccache', 'clang++-21']
|
||||
ar = 'llvm-ar-21'
|
||||
strip = 'llvm-strip-21'
|
||||
objcopy = 'llvm-objcopy-21'
|
||||
c_ld = 'lld'
|
||||
cpp_ld = 'lld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[built-in options]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default', '-Wno-c++-keyword']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default', '-Wno-c++-keyword']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,21 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-22']
|
||||
cpp = ['ccache', 'clang++-22']
|
||||
ar = 'llvm-ar-22'
|
||||
strip = 'llvm-strip-22'
|
||||
objcopy = 'llvm-objcopy-22'
|
||||
c_ld = 'lld'
|
||||
cpp_ld = 'lld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[built-in options]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv9.3-a+crypto+sha3+sm4+sve2-bitperm', '-Wextra', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default', '-Wno-c++-keyword']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv9.3-a+crypto+sha3+sm4+sve2-bitperm', '-Wextra', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default', '-Wno-c++-keyword']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,21 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-22']
|
||||
cpp = ['ccache', 'clang++-22']
|
||||
ar = 'llvm-ar-22'
|
||||
strip = 'llvm-strip-22'
|
||||
objcopy = 'llvm-objcopy-22'
|
||||
c_ld = 'lld'
|
||||
cpp_ld = 'lld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[built-in options]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default', '-Wno-c++-keyword']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default', '-Wno-c++-keyword']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-6.0'
|
||||
cpp = 'clang++-6.0'
|
||||
ar = 'llvm-ar-6.0'
|
||||
strip = 'llvm-strip-6.0'
|
||||
objcopy = 'llvm-objcopy-6.0'
|
||||
ld = 'llvm-ld-6.0'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unused-parameter']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd=fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unused-parameter']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-7'
|
||||
cpp = 'clang++-7'
|
||||
ar = 'llvm-ar-7'
|
||||
strip = 'llvm-strip-7'
|
||||
objcopy = 'llvm-objcopy-7'
|
||||
ld = 'llvm-ld-7'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unused-parameter']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unused-parameter']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-8'
|
||||
cpp = 'clang++-8'
|
||||
ar = 'llvm-ar-8'
|
||||
strip = 'llvm-strip-8'
|
||||
objcopy = 'llvm-objcopy-8'
|
||||
ld = 'llvm-ld-8'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unused-parameter']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unused-parameter']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'clang-9'
|
||||
cpp = 'clang++-9'
|
||||
ar = 'llvm-ar-9'
|
||||
strip = 'llvm-strip-9'
|
||||
objcopy = 'llvm-objcopy-9'
|
||||
ld = 'llvm-ld-9'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
cpp_args = ['--target=aarch64-linux-gnu', '-march=armv8-a+simd+fp16', '-isystem=/usr/aarch64-linux-gnu/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
c_link_args = ['--target=aarch64-linux-gnu']
|
||||
cpp_link_args = ['--target=aarch64-linux-gnu']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = 'aarch64-linux-gnu-gcc-10'
|
||||
cpp = 'aarch64-linux-gnu-g++-10'
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv8-a+simd+crypto+crc', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv8-a+simd+crypto+crc', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'aarch64-linux-gnu-gcc-11']
|
||||
cpp = ['ccache', 'aarch64-linux-gnu-g++-11']
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv8.5-a+crypto+sha3+sm4', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv8.5-a+crypto+sha3+sm4', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'aarch64-linux-gnu-gcc-11'
|
||||
cpp = 'aarch64-linux-gnu-g++-11'
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
|
||||
cpp_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
|
||||
c_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
|
||||
cpp_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = 'aarch64-linux-gnu-gcc-11'
|
||||
cpp = 'aarch64-linux-gnu-g++-11'
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv8-a+simd+crypto+crc', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv8-a+simd+crypto+crc', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'aarch64-linux-gnu-gcc-12']
|
||||
cpp = ['ccache', 'aarch64-linux-gnu-g++-12']
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv9-a+crypto+sha3+sm4+bf16+i8mm', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv9-a+crypto+sha3+sm4+bf16+i8mm', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = 'aarch64-linux-gnu-gcc-12'
|
||||
cpp = 'aarch64-linux-gnu-g++-12'
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
|
||||
cpp_args = ['-Wextra', '-Werror', '-g', '-O2', '-fstack-protector-strong', '-Wformat', '-Werror=format-security', '-Wdate-time', '-D_FORTIFY_SOURCE=2']
|
||||
c_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
|
||||
cpp_link_args = ['-Wl,-z,relro', '-Wl,-z,now']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = 'aarch64-linux-gnu-gcc-12'
|
||||
cpp = 'aarch64-linux-gnu-g++-12'
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv8-a+simd+crypto+crc', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv8-a+simd+crypto+crc', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'aarch64-linux-gnu-gcc-13']
|
||||
cpp = ['ccache', 'aarch64-linux-gnu-g++-13']
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv9.3-a+crypto+sha3+sm4', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv9.3-a+crypto+sha3+sm4', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'aarch64-linux-gnu-gcc-14']
|
||||
cpp = ['ccache', 'aarch64-linux-gnu-g++-14']
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv9.3-a+crc+sve2-aes+crypto+sha3+sm4+sve2-sha3+sve2-bitperm', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv9.3-a+crc+sve2-aes+crypto+sha3+sm4+sve2-sha3+sve2-bitperm', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'aarch64-linux-gnu-gcc-14']
|
||||
cpp = ['ccache', 'aarch64-linux-gnu-g++-14']
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv8-a', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv8-a', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'aarch64-linux-gnu-gcc-15']
|
||||
cpp = ['ccache', 'aarch64-linux-gnu-g++-15']
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv9.3-a+crc+sve2-aes+crypto+sha3+sm4+sve2-sha3+sve2-bitperm', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv9.3-a+crc+sve2-aes+crypto+sha3+sm4+sve2-sha3+sve2-bitperm', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'aarch64-linux-gnu-gcc-15']
|
||||
cpp = ['ccache', 'aarch64-linux-gnu-g++-15']
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv8-a', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv8-a', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'aarch64-linux-gnu-gcc-16']
|
||||
cpp = ['ccache', 'aarch64-linux-gnu-g++-16']
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv9.3-a+crc+sve2-aes+crypto+sha3+sm4+sve2-sha3+sve2-bitperm', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv9.3-a+crc+sve2-aes+crypto+sha3+sm4+sve2-sha3+sve2-bitperm', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'aarch64-linux-gnu-gcc-16']
|
||||
cpp = ['ccache', 'aarch64-linux-gnu-g++-16']
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv8-a', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv8-a', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = 'aarch64-linux-gnu-gcc-7'
|
||||
cpp = 'aarch64-linux-gnu-g++-7'
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv8-a+simd', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv8-a+simd', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = 'aarch64-linux-gnu-gcc-8'
|
||||
cpp = 'aarch64-linux-gnu-g++-8'
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv8-a+simd', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv8-a+simd', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,18 @@
|
||||
[binaries]
|
||||
c = 'aarch64-linux-gnu-gcc-9'
|
||||
cpp = 'aarch64-linux-gnu-g++-9'
|
||||
ar = 'aarch64-linux-gnu-ar'
|
||||
strip = 'aarch64-linux-gnu-strip'
|
||||
objcopy = 'aarch64-linux-gnu-objcopy'
|
||||
ld = 'aarch64-linux-gnu-ld'
|
||||
exe_wrapper = ['qemu-aarch64-static', '-L', '/usr/aarch64-linux-gnu']
|
||||
|
||||
[properties]
|
||||
c_args = ['-march=armv8-a+simd', '-Wextra', '-Werror']
|
||||
cpp_args = ['-march=armv8-a+simd', '-Wextra', '-Werror']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'aarch64'
|
||||
cpu = 'arm64'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-15']
|
||||
cpp = ['ccache', 'clang++-15']
|
||||
ar = 'llvm-ar-15'
|
||||
strip = 'llvm-strip-15'
|
||||
objcopy = 'llvm-objcopy-15'
|
||||
ld = 'llvm-ld-15'
|
||||
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabi']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
cpp_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror']
|
||||
c_link_args = ['--target=arm-linux-gnueabi']
|
||||
cpp_link_args = ['--target=arm-linux-gnueabi']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'arm'
|
||||
cpu = 'generic'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-16']
|
||||
cpp = ['ccache', 'clang++-16']
|
||||
ar = 'llvm-ar-16'
|
||||
strip = 'llvm-strip-16'
|
||||
objcopy = 'llvm-objcopy-16'
|
||||
ld = 'llvm-ld-16'
|
||||
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabi']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage']
|
||||
cpp_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage']
|
||||
c_link_args = ['--target=arm-linux-gnueabi']
|
||||
cpp_link_args = ['--target=arm-linux-gnueabi']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'arm'
|
||||
cpu = 'generic'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-17']
|
||||
cpp = ['ccache', 'clang++-17']
|
||||
ar = 'llvm-ar-17'
|
||||
strip = 'llvm-strip-17'
|
||||
objcopy = 'llvm-objcopy-17'
|
||||
ld = 'llvm-ld-17'
|
||||
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabi']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage']
|
||||
cpp_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage']
|
||||
c_link_args = ['--target=arm-linux-gnueabi']
|
||||
cpp_link_args = ['--target=arm-linux-gnueabi']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'arm'
|
||||
cpu = 'generic'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,20 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-18']
|
||||
cpp = ['ccache', 'clang++-18']
|
||||
ar = 'llvm-ar-18'
|
||||
strip = 'llvm-strip-18'
|
||||
objcopy = 'llvm-objcopy-18'
|
||||
ld = 'llvm-ld-18'
|
||||
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabi']
|
||||
|
||||
[properties]
|
||||
c_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
cpp_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
c_link_args = ['--target=arm-linux-gnueabi']
|
||||
cpp_link_args = ['--target=arm-linux-gnueabi']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'arm'
|
||||
cpu = 'generic'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,21 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-19']
|
||||
cpp = ['ccache', 'clang++-19']
|
||||
ar = 'llvm-ar-19'
|
||||
strip = 'llvm-strip-19'
|
||||
objcopy = 'llvm-objcopy-19'
|
||||
c_ld = 'lld'
|
||||
cpp_ld = 'lld'
|
||||
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabi']
|
||||
|
||||
[built-in options]
|
||||
c_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
cpp_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
c_link_args = ['--target=arm-linux-gnueabi']
|
||||
cpp_link_args = ['--target=arm-linux-gnueabi']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'arm'
|
||||
cpu = 'generic'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,21 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-20']
|
||||
cpp = ['ccache', 'clang++-20']
|
||||
ar = 'llvm-ar-20'
|
||||
strip = 'llvm-strip-20'
|
||||
objcopy = 'llvm-objcopy-20'
|
||||
c_ld = 'lld'
|
||||
cpp_ld = 'lld'
|
||||
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabi']
|
||||
|
||||
[built-in options]
|
||||
c_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
cpp_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default']
|
||||
c_link_args = ['--target=arm-linux-gnueabi']
|
||||
cpp_link_args = ['--target=arm-linux-gnueabi']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'arm'
|
||||
cpu = 'generic'
|
||||
endian = 'little'
|
||||
@@ -0,0 +1,21 @@
|
||||
[binaries]
|
||||
c = ['ccache', 'clang-21']
|
||||
cpp = ['ccache', 'clang++-21']
|
||||
ar = 'llvm-ar-21'
|
||||
strip = 'llvm-strip-21'
|
||||
objcopy = 'llvm-objcopy-21'
|
||||
c_ld = 'lld'
|
||||
cpp_ld = 'lld'
|
||||
exe_wrapper = ['qemu-arm-static', '-L', '/usr/arm-linux-gnueabi']
|
||||
|
||||
[built-in options]
|
||||
c_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default', '-Wno-c++-keyword']
|
||||
cpp_args = ['--target=arm-linux-gnueabi', '-isystem=/usr/arm-linux-gnueabi/include', '-Weverything', '-fno-lax-vector-conversions', '-Werror', '-Wno-unsafe-buffer-usage', '-Wno-switch-default', '-Wno-c++-keyword']
|
||||
c_link_args = ['--target=arm-linux-gnueabi']
|
||||
cpp_link_args = ['--target=arm-linux-gnueabi']
|
||||
|
||||
[host_machine]
|
||||
system = 'linux'
|
||||
cpu_family = 'arm'
|
||||
cpu = 'generic'
|
||||
endian = 'little'
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user