1# Makefile.rtl for GNU Ada Compiler (GNAT). 2# Copyright (C) 2003-2020, Free Software Foundation, Inc. 3 4#This file is part of GCC. 5 6#GCC is free software; you can redistribute it and/or modify 7#it under the terms of the GNU General Public License as published by 8#the Free Software Foundation; either version 3, or (at your option) 9#any later version. 10 11#GCC is distributed in the hope that it will be useful, 12#but WITHOUT ANY WARRANTY; without even the implied warranty of 13#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14#GNU General Public License for more details. 15 16#You should have received a copy of the GNU General Public License 17#along with GCC; see the file COPYING3. If not see 18#<http://www.gnu.org/licenses/>. 19 20# This makefile fragment is included in the ada Makefile. 21 22# Its purpose is to allow the separate maintenance of the list of 23# GNATRTL objects and target pairs, which frequently changes. 24 25ifndef ADAC 26ADAC=$(CC) 27endif 28 29# Objects needed only for tasking 30GNATRTL_TASKING_OBJS= \ 31 a-dispat$(objext) \ 32 a-dynpri$(objext) \ 33 a-interr$(objext) \ 34 a-intnam$(objext) \ 35 a-reatim$(objext) \ 36 a-retide$(objext) \ 37 a-rttiev$(objext) \ 38 a-synbar$(objext) \ 39 a-sytaco$(objext) \ 40 a-tasatt$(objext) \ 41 a-taside$(objext) \ 42 a-tasini$(objext) \ 43 a-taster$(objext) \ 44 g-boubuf$(objext) \ 45 g-boumai$(objext) \ 46 g-semaph$(objext) \ 47 g-signal$(objext) \ 48 g-tastus$(objext) \ 49 g-thread$(objext) \ 50 s-inmaop$(objext) \ 51 s-interr$(objext) \ 52 s-intman$(objext) \ 53 s-mudido$(objext) \ 54 s-osinte$(objext) \ 55 s-proinf$(objext) \ 56 s-putaim$(objext) \ 57 s-solita$(objext) \ 58 s-stusta$(objext) \ 59 s-taenca$(objext) \ 60 s-taprob$(objext) \ 61 s-taprop$(objext) \ 62 s-tarest$(objext) \ 63 s-tasdeb$(objext) \ 64 s-tasinf$(objext) \ 65 s-tasini$(objext) \ 66 s-taskin$(objext) \ 67 s-taspri$(objext) \ 68 s-tasque$(objext) \ 69 s-tasres$(objext) \ 70 s-tasren$(objext) \ 71 s-tassta$(objext) \ 72 s-tasuti$(objext) \ 73 s-taasde$(objext) \ 74 s-tadeca$(objext) \ 75 s-tadert$(objext) \ 76 s-tataat$(objext) \ 77 s-tpinop$(objext) \ 78 s-tpoben$(objext) \ 79 s-tpobop$(objext) \ 80 s-tposen$(objext) \ 81 thread$(objext) \ 82 $(EXTRA_GNATRTL_TASKING_OBJS) 83 84# Objects that require IEEE Float 85GNATRTL_ALTIVEC_OBJS= \ 86 g-allein$(objext) \ 87 g-alleve$(objext) \ 88 g-altcon$(objext) \ 89 g-altive$(objext) \ 90 g-alveop$(objext) \ 91 g-alvety$(objext) \ 92 g-alvevi$(objext) 93 94# Objects needed for non-tasking. 95GNATRTL_NONTASKING_OBJS= \ 96 a-assert$(objext) \ 97 a-btgbso$(objext) \ 98 a-calari$(objext) \ 99 a-calcon$(objext) \ 100 a-caldel$(objext) \ 101 a-calend$(objext) \ 102 a-calfor$(objext) \ 103 a-catizo$(objext) \ 104 a-cbdlli$(objext) \ 105 a-cbhama$(objext) \ 106 a-cbhase$(objext) \ 107 a-cbmutr$(objext) \ 108 a-cborma$(objext) \ 109 a-cborse$(objext) \ 110 a-cbprqu$(objext) \ 111 a-cbsyqu$(objext) \ 112 a-cdlili$(objext) \ 113 a-cfdlli$(objext) \ 114 a-cfhama$(objext) \ 115 a-cfhase$(objext) \ 116 a-cfinve$(objext) \ 117 a-cforma$(objext) \ 118 a-cforse$(objext) \ 119 a-cgaaso$(objext) \ 120 a-cgarso$(objext) \ 121 a-cgcaso$(objext) \ 122 a-chacon$(objext) \ 123 a-chahan$(objext) \ 124 a-charac$(objext) \ 125 a-chlat1$(objext) \ 126 a-chlat9$(objext) \ 127 a-chtgbk$(objext) \ 128 a-chtgbo$(objext) \ 129 a-chtgke$(objext) \ 130 a-chtgop$(objext) \ 131 a-chzla1$(objext) \ 132 a-chzla9$(objext) \ 133 a-cidlli$(objext) \ 134 a-cihama$(objext) \ 135 a-cihase$(objext) \ 136 a-cimutr$(objext) \ 137 a-ciorma$(objext) \ 138 a-ciormu$(objext) \ 139 a-ciorse$(objext) \ 140 a-clrefi$(objext) \ 141 a-coboho$(objext) \ 142 a-cobove$(objext) \ 143 a-cofove$(objext) \ 144 a-cofuba$(objext) \ 145 a-cofuma$(objext) \ 146 a-cofuse$(objext) \ 147 a-cofuve$(objext) \ 148 a-cogeso$(objext) \ 149 a-cohama$(objext) \ 150 a-cohase$(objext) \ 151 a-cohata$(objext) \ 152 a-coinho$(objext) \ 153 a-coinve$(objext) \ 154 a-colien$(objext) \ 155 a-colire$(objext) \ 156 a-comlin$(objext) \ 157 a-comutr$(objext) \ 158 a-conhel$(objext) \ 159 a-contai$(objext) \ 160 a-convec$(objext) \ 161 a-coorma$(objext) \ 162 a-coormu$(objext) \ 163 a-coorse$(objext) \ 164 a-coprnu$(objext) \ 165 a-coteio$(objext) \ 166 a-crbltr$(objext) \ 167 a-crbtgk$(objext) \ 168 a-crbtgo$(objext) \ 169 a-crdlli$(objext) \ 170 a-csquin$(objext) \ 171 a-cuprqu$(objext) \ 172 a-cusyqu$(objext) \ 173 a-cwila1$(objext) \ 174 a-cwila9$(objext) \ 175 a-decima$(objext) \ 176 a-dhfina$(objext) \ 177 a-diocst$(objext) \ 178 a-direct$(objext) \ 179 a-direio$(objext) \ 180 a-dirval$(objext) \ 181 a-einuoc$(objext) \ 182 a-elchha$(objext) \ 183 a-envvar$(objext) \ 184 a-except$(objext) \ 185 a-exctra$(objext) \ 186 a-finali$(objext) \ 187 a-flteio$(objext) \ 188 a-fwteio$(objext) \ 189 a-fzteio$(objext) \ 190 a-inteio$(objext) \ 191 a-ioexce$(objext) \ 192 a-iteint$(objext) \ 193 a-iwteio$(objext) \ 194 a-izteio$(objext) \ 195 a-lcteio$(objext) \ 196 a-lfteio$(objext) \ 197 a-lfwtio$(objext) \ 198 a-lfztio$(objext) \ 199 a-liteio$(objext) \ 200 a-liwtio$(objext) \ 201 a-liztio$(objext) \ 202 a-llctio$(objext) \ 203 a-llftio$(objext) \ 204 a-llfwti$(objext) \ 205 a-llfzti$(objext) \ 206 a-llitio$(objext) \ 207 a-lliwti$(objext) \ 208 a-llizti$(objext) \ 209 a-llltio$(objext) \ 210 a-lllwti$(objext) \ 211 a-lllzti$(objext) \ 212 a-locale$(objext) \ 213 a-nbnbin$(objext) \ 214 a-nbnbre$(objext) \ 215 a-ncelfu$(objext) \ 216 a-ngcefu$(objext) \ 217 a-ngcoar$(objext) \ 218 a-ngcoty$(objext) \ 219 a-ngelfu$(objext) \ 220 a-ngrear$(objext) \ 221 a-nlcefu$(objext) \ 222 a-nlcoar$(objext) \ 223 a-nlcoty$(objext) \ 224 a-nlelfu$(objext) \ 225 a-nllcar$(objext) \ 226 a-nllcef$(objext) \ 227 a-nllcty$(objext) \ 228 a-nllefu$(objext) \ 229 a-nllrar$(objext) \ 230 a-nlrear$(objext) \ 231 a-nscefu$(objext) \ 232 a-nscoty$(objext) \ 233 a-nselfu$(objext) \ 234 a-nubinu$(objext) \ 235 a-nucoar$(objext) \ 236 a-nucoty$(objext) \ 237 a-nudira$(objext) \ 238 a-nuelfu$(objext) \ 239 a-nuflra$(objext) \ 240 a-nagefl$(objext) \ 241 a-nallfl$(objext) \ 242 a-nalofl$(objext) \ 243 a-nuaufl$(objext) \ 244 a-nashfl$(objext) \ 245 a-nuauco$(objext) \ 246 a-naliop$(objext) \ 247 a-numaux$(objext) \ 248 a-numeri$(objext) \ 249 a-nurear$(objext) \ 250 a-rbtgbk$(objext) \ 251 a-rbtgbo$(objext) \ 252 a-rbtgso$(objext) \ 253 a-sbecin$(objext) \ 254 a-sbhcin$(objext) \ 255 a-sblcin$(objext) \ 256 a-scteio$(objext) \ 257 a-secain$(objext) \ 258 a-sequio$(objext) \ 259 a-sfecin$(objext) \ 260 a-sfhcin$(objext) \ 261 a-sflcin$(objext) \ 262 a-sfteio$(objext) \ 263 a-sfwtio$(objext) \ 264 a-sfztio$(objext) \ 265 a-shcain$(objext) \ 266 a-siocst$(objext) \ 267 a-siteio$(objext) \ 268 a-siwtio$(objext) \ 269 a-siztio$(objext) \ 270 a-slcain$(objext) \ 271 a-ssicst$(objext) \ 272 a-ssitio$(objext) \ 273 a-ssiwti$(objext) \ 274 a-ssizti$(objext) \ 275 a-stboha$(objext) \ 276 a-stfiha$(objext) \ 277 a-stmaco$(objext) \ 278 a-stobbu$(objext) \ 279 a-stobfi$(objext) \ 280 a-storio$(objext) \ 281 a-stoubu$(objext) \ 282 a-stoufi$(objext) \ 283 a-stoufo$(objext) \ 284 a-stouut$(objext) \ 285 a-strbou$(objext) \ 286 a-stream$(objext) \ 287 a-strsto$(objext) \ 288 a-ststbo$(objext) \ 289 a-ststun$(objext) \ 290 a-strfix$(objext) \ 291 a-strhas$(objext) \ 292 a-string$(objext) \ 293 a-strmap$(objext) \ 294 a-strsea$(objext) \ 295 a-strsup$(objext) \ 296 a-strunb$(objext) \ 297 a-ststio$(objext) \ 298 a-stteou$(objext) \ 299 a-stunau$(objext) \ 300 a-stunha$(objext) \ 301 a-stuten$(objext) \ 302 a-stwibo$(objext) \ 303 a-stwifi$(objext) \ 304 a-stwiha$(objext) \ 305 a-stwima$(objext) \ 306 a-stwise$(objext) \ 307 a-stwisu$(objext) \ 308 a-stwiun$(objext) \ 309 a-stzbou$(objext) \ 310 a-stzfix$(objext) \ 311 a-stzhas$(objext) \ 312 a-stzmap$(objext) \ 313 a-stzsea$(objext) \ 314 a-stzsup$(objext) \ 315 a-stzunb$(objext) \ 316 a-suecin$(objext) \ 317 a-suenco$(objext) \ 318 a-suenst$(objext) \ 319 a-suewst$(objext) \ 320 a-suezst$(objext) \ 321 a-suhcin$(objext) \ 322 a-sulcin$(objext) \ 323 a-suteio$(objext) \ 324 a-swbwha$(objext) \ 325 a-swfwha$(objext) \ 326 a-swmwco$(objext) \ 327 a-swunau$(objext) \ 328 a-swuwha$(objext) \ 329 a-swuwti$(objext) \ 330 a-szbzha$(objext) \ 331 a-szfzha$(objext) \ 332 a-szmzco$(objext) \ 333 a-szunau$(objext) \ 334 a-szuzha$(objext) \ 335 a-szuzti$(objext) \ 336 a-tags$(objext) \ 337 a-teioed$(objext) \ 338 a-textio$(objext) \ 339 a-tgdico$(objext) \ 340 a-tiboio$(objext) \ 341 a-ticoau$(objext) \ 342 a-ticoio$(objext) \ 343 a-tideau$(objext) \ 344 a-tideio$(objext) \ 345 a-tienau$(objext) \ 346 a-tienio$(objext) \ 347 a-tifiau$(objext) \ 348 a-tifiio$(objext) \ 349 a-tiflau$(objext) \ 350 a-tiflio$(objext) \ 351 a-tigeau$(objext) \ 352 a-tiinau$(objext) \ 353 a-tiinio$(objext) \ 354 a-timoio$(objext) \ 355 a-tiocst$(objext) \ 356 a-tirsfi$(objext) \ 357 a-titest$(objext) \ 358 a-tiunio$(objext) \ 359 a-unccon$(objext) \ 360 a-uncdea$(objext) \ 361 a-undesu$(objext) \ 362 a-wichha$(objext) \ 363 a-wichun$(objext) \ 364 a-widcha$(objext) \ 365 a-witeio$(objext) \ 366 a-wrstfi$(objext) \ 367 a-wtcoau$(objext) \ 368 a-wtcoio$(objext) \ 369 a-wtcstr$(objext) \ 370 a-wtdeau$(objext) \ 371 a-wtdeio$(objext) \ 372 a-wtedit$(objext) \ 373 a-wtenau$(objext) \ 374 a-wtenio$(objext) \ 375 a-wtfiau$(objext) \ 376 a-wtfiio$(objext) \ 377 a-wtflau$(objext) \ 378 a-wtflio$(objext) \ 379 a-wtgeau$(objext) \ 380 a-wtinau$(objext) \ 381 a-wtinio$(objext) \ 382 a-wtmoio$(objext) \ 383 a-wttest$(objext) \ 384 a-wwboio$(objext) \ 385 a-wwunio$(objext) \ 386 a-zchara$(objext) \ 387 a-zchhan$(objext) \ 388 a-zchuni$(objext) \ 389 a-zrstfi$(objext) \ 390 a-ztcoau$(objext) \ 391 a-ztcoio$(objext) \ 392 a-ztcstr$(objext) \ 393 a-ztdeau$(objext) \ 394 a-ztdeio$(objext) \ 395 a-ztedit$(objext) \ 396 a-ztenau$(objext) \ 397 a-ztenio$(objext) \ 398 a-ztexio$(objext) \ 399 a-ztfiau$(objext) \ 400 a-ztfiio$(objext) \ 401 a-ztflau$(objext) \ 402 a-ztflio$(objext) \ 403 a-ztgeau$(objext) \ 404 a-ztinau$(objext) \ 405 a-ztinio$(objext) \ 406 a-ztmoio$(objext) \ 407 a-zttest$(objext) \ 408 a-zzboio$(objext) \ 409 a-zzunio$(objext) \ 410 ada$(objext) \ 411 calendar$(objext) \ 412 directio$(objext) \ 413 g-arrspl$(objext) \ 414 g-awk$(objext) \ 415 g-binenv$(objext) \ 416 g-brapre$(objext) \ 417 g-bubsor$(objext) \ 418 g-busora$(objext) \ 419 g-busorg$(objext) \ 420 g-byorma$(objext) \ 421 g-bytswa$(objext) \ 422 g-calend$(objext) \ 423 g-casuti$(objext) \ 424 g-catiio$(objext) \ 425 g-cgi$(objext) \ 426 g-cgicoo$(objext) \ 427 g-cgideb$(objext) \ 428 g-comlin$(objext) \ 429 g-comver$(objext) \ 430 g-crc32$(objext) \ 431 g-ctrl_c$(objext) \ 432 g-curexc$(objext) \ 433 g-debpoo$(objext) \ 434 g-debuti$(objext) \ 435 g-decstr$(objext) \ 436 g-deutst$(objext) \ 437 g-diopit$(objext) \ 438 g-dirope$(objext) \ 439 g-dynhta$(objext) \ 440 g-dyntab$(objext) \ 441 g-encstr$(objext) \ 442 g-enutst$(objext) \ 443 g-excact$(objext) \ 444 g-except$(objext) \ 445 g-exctra$(objext) \ 446 g-expect$(objext) \ 447 g-exptty$(objext) \ 448 g-flocon$(objext) \ 449 g-forstr$(objext) \ 450 g-graphs$(objext) \ 451 g-heasor$(objext) \ 452 g-hesora$(objext) \ 453 g-hesorg$(objext) \ 454 g-htable$(objext) \ 455 g-io$(objext) \ 456 g-io_aux$(objext) \ 457 g-lists$(objext) \ 458 g-locfil$(objext) \ 459 g-mbdira$(objext) \ 460 g-mbflra$(objext) \ 461 g-md5$(objext) \ 462 g-memdum$(objext) \ 463 g-moreex$(objext) \ 464 g-os_lib$(objext) \ 465 g-pehage$(objext) \ 466 g-rannum$(objext) \ 467 g-regexp$(objext) \ 468 g-regpat$(objext) \ 469 g-rewdat$(objext) \ 470 g-sechas$(objext) \ 471 g-sehamd$(objext) \ 472 g-sehash$(objext) \ 473 g-sercom$(objext) \ 474 g-sestin$(objext) \ 475 g-sets$(objext) \ 476 g-sha1$(objext) \ 477 g-sha224$(objext) \ 478 g-sha256$(objext) \ 479 g-sha384$(objext) \ 480 g-sha512$(objext) \ 481 g-shsh32$(objext) \ 482 g-shsh64$(objext) \ 483 g-shshco$(objext) \ 484 g-souinf$(objext) \ 485 g-spchge$(objext) \ 486 g-speche$(objext) \ 487 g-spipat$(objext) \ 488 g-spitbo$(objext) \ 489 g-spogwa$(objext) \ 490 g-sptabo$(objext) \ 491 g-sptain$(objext) \ 492 g-sptavs$(objext) \ 493 g-strhas$(objext) \ 494 g-string$(objext) \ 495 g-strspl$(objext) \ 496 g-table$(objext) \ 497 g-tasloc$(objext) \ 498 g-timsta$(objext) \ 499 g-traceb$(objext) \ 500 g-trasym$(objext) \ 501 g-tty$(objext) \ 502 g-u3spch$(objext) \ 503 g-utf_32$(objext) \ 504 g-wispch$(objext) \ 505 g-wistsp$(objext) \ 506 g-zspche$(objext) \ 507 g-zstspl$(objext) \ 508 gnat$(objext) \ 509 i-c$(objext) \ 510 i-cexten$(objext) \ 511 i-cobol$(objext) \ 512 i-cpoint$(objext) \ 513 i-cstrea$(objext) \ 514 i-cstrin$(objext) \ 515 i-fortra$(objext) \ 516 i-pacdec$(objext) \ 517 interfac$(objext) \ 518 ioexcept$(objext) \ 519 machcode$(objext) \ 520 s-addima$(objext) \ 521 s-addope$(objext) \ 522 s-aoinar$(objext) \ 523 s-aomoar$(objext) \ 524 s-aotase$(objext) \ 525 s-aridou$(objext) \ 526 s-arit32$(objext) \ 527 s-arit64$(objext) \ 528 s-assert$(objext) \ 529 s-atacco$(objext) \ 530 s-atocou$(objext) \ 531 s-atoope$(objext) \ 532 s-atopex$(objext) \ 533 s-atopri$(objext) \ 534 s-auxdec$(objext) \ 535 s-bignum$(objext) \ 536 s-bitfie$(objext) \ 537 s-bitops$(objext) \ 538 s-bituti$(objext) \ 539 s-boarop$(objext) \ 540 s-boustr$(objext) \ 541 s-bytswa$(objext) \ 542 s-carsi8$(objext) \ 543 s-carun8$(objext) \ 544 s-casi16$(objext) \ 545 s-casi32$(objext) \ 546 s-casi64$(objext) \ 547 s-casuti$(objext) \ 548 s-caun16$(objext) \ 549 s-caun32$(objext) \ 550 s-caun64$(objext) \ 551 s-chepoo$(objext) \ 552 s-commun$(objext) \ 553 s-conca2$(objext) \ 554 s-conca3$(objext) \ 555 s-conca4$(objext) \ 556 s-conca5$(objext) \ 557 s-conca6$(objext) \ 558 s-conca7$(objext) \ 559 s-conca8$(objext) \ 560 s-conca9$(objext) \ 561 s-crc32$(objext) \ 562 s-crtl$(objext) \ 563 s-dfmkio$(objext) \ 564 s-dfmopr$(objext) \ 565 s-dgmgop$(objext) \ 566 s-diflio$(objext) \ 567 s-diflmk$(objext) \ 568 s-digemk$(objext) \ 569 s-diinio$(objext) \ 570 s-dilomk$(objext) \ 571 s-dim$(objext) \ 572 s-dimkio$(objext) \ 573 s-dimmks$(objext) \ 574 s-direio$(objext) \ 575 s-dlmkio$(objext) \ 576 s-dlmopr$(objext) \ 577 s-dmotpr$(objext) \ 578 s-dsaser$(objext) \ 579 s-elaall$(objext) \ 580 s-excdeb$(objext) \ 581 s-except$(objext) \ 582 s-exctab$(objext) \ 583 s-exctra$(objext) \ 584 s-exnint$(objext) \ 585 s-exnllf$(objext) \ 586 s-exnlli$(objext) \ 587 s-expint$(objext) \ 588 s-explli$(objext) \ 589 s-expllu$(objext) \ 590 s-expmod$(objext) \ 591 s-exponn$(objext) \ 592 s-expont$(objext) \ 593 s-exponu$(objext) \ 594 s-expuns$(objext) \ 595 s-fatflt$(objext) \ 596 s-fatgen$(objext) \ 597 s-fatlfl$(objext) \ 598 s-fatllf$(objext) \ 599 s-ficobl$(objext) \ 600 s-filatt$(objext) \ 601 s-fileio$(objext) \ 602 s-finmas$(objext) \ 603 s-finroo$(objext) \ 604 s-flocon$(objext) \ 605 s-fode32$(objext) \ 606 s-fode64$(objext) \ 607 s-fofi32$(objext) \ 608 s-fofi64$(objext) \ 609 s-fore_d$(objext) \ 610 s-fore_f$(objext) \ 611 s-forrea$(objext) \ 612 s-gearop$(objext) \ 613 s-genbig$(objext) \ 614 s-geveop$(objext) \ 615 s-gloloc$(objext) \ 616 s-htable$(objext) \ 617 s-imageb$(objext) \ 618 s-imaged$(objext) \ 619 s-imagef$(objext) \ 620 s-imagei$(objext) \ 621 s-imageu$(objext) \ 622 s-imagew$(objext) \ 623 s-imde32$(objext) \ 624 s-imde64$(objext) \ 625 s-imenne$(objext) \ 626 s-imfi32$(objext) \ 627 s-imfi64$(objext) \ 628 s-imgbiu$(objext) \ 629 s-imgboo$(objext) \ 630 s-imgcha$(objext) \ 631 s-imgenu$(objext) \ 632 s-imgint$(objext) \ 633 s-imgllb$(objext) \ 634 s-imglli$(objext) \ 635 s-imgllu$(objext) \ 636 s-imgllw$(objext) \ 637 s-imgrea$(objext) \ 638 s-imguns$(objext) \ 639 s-imguti$(objext) \ 640 s-imgwch$(objext) \ 641 s-imgwiu$(objext) \ 642 s-io$(objext) \ 643 s-llflex$(objext) \ 644 s-maccod$(objext) \ 645 s-mantis$(objext) \ 646 s-mastop$(objext) \ 647 s-memcop$(objext) \ 648 s-memory$(objext) \ 649 s-multip$(objext) \ 650 s-os_lib$(objext) \ 651 s-oscons$(objext) \ 652 s-osprim$(objext) \ 653 s-pack03$(objext) \ 654 s-pack05$(objext) \ 655 s-pack06$(objext) \ 656 s-pack07$(objext) \ 657 s-pack09$(objext) \ 658 s-pack10$(objext) \ 659 s-pack11$(objext) \ 660 s-pack12$(objext) \ 661 s-pack13$(objext) \ 662 s-pack14$(objext) \ 663 s-pack15$(objext) \ 664 s-pack17$(objext) \ 665 s-pack18$(objext) \ 666 s-pack19$(objext) \ 667 s-pack20$(objext) \ 668 s-pack21$(objext) \ 669 s-pack22$(objext) \ 670 s-pack23$(objext) \ 671 s-pack24$(objext) \ 672 s-pack25$(objext) \ 673 s-pack26$(objext) \ 674 s-pack27$(objext) \ 675 s-pack28$(objext) \ 676 s-pack29$(objext) \ 677 s-pack30$(objext) \ 678 s-pack31$(objext) \ 679 s-pack33$(objext) \ 680 s-pack34$(objext) \ 681 s-pack35$(objext) \ 682 s-pack36$(objext) \ 683 s-pack37$(objext) \ 684 s-pack38$(objext) \ 685 s-pack39$(objext) \ 686 s-pack40$(objext) \ 687 s-pack41$(objext) \ 688 s-pack42$(objext) \ 689 s-pack43$(objext) \ 690 s-pack44$(objext) \ 691 s-pack45$(objext) \ 692 s-pack46$(objext) \ 693 s-pack47$(objext) \ 694 s-pack48$(objext) \ 695 s-pack49$(objext) \ 696 s-pack50$(objext) \ 697 s-pack51$(objext) \ 698 s-pack52$(objext) \ 699 s-pack53$(objext) \ 700 s-pack54$(objext) \ 701 s-pack55$(objext) \ 702 s-pack56$(objext) \ 703 s-pack57$(objext) \ 704 s-pack58$(objext) \ 705 s-pack59$(objext) \ 706 s-pack60$(objext) \ 707 s-pack61$(objext) \ 708 s-pack62$(objext) \ 709 s-pack63$(objext) \ 710 s-parame$(objext) \ 711 s-parint$(objext) \ 712 s-pooglo$(objext) \ 713 s-pooloc$(objext) \ 714 s-poosiz$(objext) \ 715 s-powflt$(objext) \ 716 s-powlfl$(objext) \ 717 s-powllf$(objext) \ 718 s-purexc$(objext) \ 719 s-putima$(objext) \ 720 s-rannum$(objext) \ 721 s-ransee$(objext) \ 722 s-regexp$(objext) \ 723 s-regpat$(objext) \ 724 s-resfil$(objext) \ 725 s-restri$(objext) \ 726 s-rident$(objext) \ 727 s-rpc$(objext) \ 728 s-scaval$(objext) \ 729 s-secsta$(objext) \ 730 s-sequio$(objext) \ 731 s-shabig$(objext) \ 732 s-shasto$(objext) \ 733 s-soflin$(objext) \ 734 s-soliin$(objext) \ 735 s-spsufi$(objext) \ 736 s-stache$(objext) \ 737 s-stalib$(objext) \ 738 s-stausa$(objext) \ 739 s-stoele$(objext) \ 740 s-stopoo$(objext) \ 741 s-stposu$(objext) \ 742 s-stratt$(objext) \ 743 s-statxd$(objext) \ 744 s-strhas$(objext) \ 745 s-string$(objext) \ 746 s-ststop$(objext) \ 747 s-tasloc$(objext) \ 748 s-traceb$(objext) \ 749 s-traent$(objext) \ 750 s-trasym$(objext) \ 751 s-unstyp$(objext) \ 752 s-utf_32$(objext) \ 753 s-valboo$(objext) \ 754 s-valcha$(objext) \ 755 s-vade32$(objext) \ 756 s-vade64$(objext) \ 757 s-vafi32$(objext) \ 758 s-vafi64$(objext) \ 759 s-valenu$(objext) \ 760 s-valflt$(objext) \ 761 s-valint$(objext) \ 762 s-vallfl$(objext) \ 763 s-valllf$(objext) \ 764 s-vallli$(objext) \ 765 s-valllu$(objext) \ 766 s-valrea$(objext) \ 767 s-valued$(objext) \ 768 s-valuef$(objext) \ 769 s-valuei$(objext) \ 770 s-valuer$(objext) \ 771 s-valueu$(objext) \ 772 s-valuns$(objext) \ 773 s-valuti$(objext) \ 774 s-valwch$(objext) \ 775 s-veboop$(objext) \ 776 s-vector$(objext) \ 777 s-vercon$(objext) \ 778 s-wchcnv$(objext) \ 779 s-wchcon$(objext) \ 780 s-wchjis$(objext) \ 781 s-wchstw$(objext) \ 782 s-wchwts$(objext) \ 783 s-widboo$(objext) \ 784 s-widcha$(objext) \ 785 s-widenu$(objext) \ 786 s-widint$(objext) \ 787 s-widlli$(objext) \ 788 s-widllu$(objext) \ 789 s-widthi$(objext) \ 790 s-widthu$(objext) \ 791 s-widuns$(objext) \ 792 s-widwch$(objext) \ 793 s-wwdcha$(objext) \ 794 s-wwdenu$(objext) \ 795 s-wwdwch$(objext) \ 796 sequenio$(objext) \ 797 system$(objext) \ 798 text_io$(objext) \ 799 unchconv$(objext) \ 800 unchdeal$(objext) \ 801 $(GNATRTL_ALTIVEC_OBJS) \ 802 $(GNATRTL_SOCKETS_OBJS) \ 803 $(EXTRA_GNATRTL_NONTASKING_OBJS) 804 805# LIBGNAT_TARGET_PAIRS is a list of pairs of filenames. 806# The members of each pair must be separated by a '<' and no whitespace. 807# Each pair must be separated by some amount of whitespace from the following 808# pair. 809 810# Non-tasking case: 811 812LIBGNAT_TARGET_PAIRS = \ 813a-intnam.ads<libgnarl/a-intnam__dummy.ads \ 814s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \ 815s-intman.adb<libgnarl/s-intman__dummy.adb \ 816s-osinte.ads<libgnarl/s-osinte__dummy.ads \ 817s-osprim.adb<libgnat/s-osprim__posix.adb \ 818s-taprop.adb<libgnarl/s-taprop__dummy.adb \ 819s-taspri.ads<libgnarl/s-taspri__dummy.ads 820 821# When using the GCC exception handling mechanism, we need to use an 822# alternate body for a-exexpr.adb (a-exexpr-gcc.adb) 823 824EH_MECHANISM= 825 826# Compilation options for the GCC-SJLJ RTS. This may be augmented for 827# target specific contexts, e.g. to add -fno-omit-frame-pointer for backtrace 828# computations. 829GNATLIBCFLAGS_FOR_GCCSJLJ=-fsjlj 830 831# Default shared object option. Note that we rely on the fact that the "soname" 832# option will always be present and last in this flag, so that we can have 833# $(SO_OPTS)libgnat-x.xx 834 835SO_OPTS = -Wl,-soname, 836 837# Default gnatlib-shared target. 838# By default, equivalent to gnatlib. 839# Set to gnatlib-shared-default, gnatlib-shared-dual, or a platform specific 840# target when supported. 841GNATLIB_SHARED = gnatlib 842 843# By default, build socket support units. On platforms that do not support 844# sockets, reset this variable to empty and add DUMMY_SOCKETS_TARGET_PAIRS 845# to LIBGNAT_TARGET_PAIRS. 846 847GNATRTL_SOCKETS_OBJS = g-soccon$(objext) g-socket$(objext) g-socthi$(objext) \ 848 g-soliop$(objext) g-sothco$(objext) g-socpol$(objext) 849 850DUMMY_SOCKETS_TARGET_PAIRS = \ 851 g-socket.adb<libgnat/g-socket__dummy.adb \ 852 g-socket.ads<libgnat/g-socket__dummy.ads \ 853 g-socthi.adb<libgnat/g-socthi__dummy.adb \ 854 g-socthi.ads<libgnat/g-socthi__dummy.ads \ 855 g-sothco.adb<libgnat/g-sothco__dummy.adb \ 856 g-sothco.ads<libgnat/g-sothco__dummy.ads \ 857 g-socpol.adb<libgnat/g-socpol__dummy.adb \ 858 g-socpol.ads<libgnat/g-socpol__dummy.ads 859 860# On platforms where atomic increment/decrement operations are supported, 861# special version of Ada.Strings.Unbounded package can be used. 862 863ATOMICS_TARGET_PAIRS = \ 864 a-coinho.adb<libgnat/a-coinho__shared.adb \ 865 a-coinho.ads<libgnat/a-coinho__shared.ads \ 866 a-stunau.adb<libgnat/a-stunau__shared.adb \ 867 a-suteio.adb<libgnat/a-suteio__shared.adb \ 868 a-strunb.ads<libgnat/a-strunb__shared.ads \ 869 a-strunb.adb<libgnat/a-strunb__shared.adb \ 870 a-stwiun.adb<libgnat/a-stwiun__shared.adb \ 871 a-stwiun.ads<libgnat/a-stwiun__shared.ads \ 872 a-swunau.adb<libgnat/a-swunau__shared.adb \ 873 a-swuwti.adb<libgnat/a-swuwti__shared.adb \ 874 a-stzunb.adb<libgnat/a-stzunb__shared.adb \ 875 a-stzunb.ads<libgnat/a-stzunb__shared.ads \ 876 a-szunau.adb<libgnat/a-szunau__shared.adb \ 877 a-szuzti.adb<libgnat/a-szuzti__shared.adb 878 879ATOMICS_BUILTINS_TARGET_PAIRS = \ 880 s-atocou.adb<libgnat/s-atocou__builtin.adb 881 882# Special version of units for x86 and x86-64 platforms. 883 884X86_TARGET_PAIRS = \ 885 a-nuauco.ads<libgnat/a-nuauco__x86.ads \ 886 s-atocou.adb<libgnat/s-atocou__x86.adb 887 888X86_64_TARGET_PAIRS = \ 889 a-nuauco.ads<libgnat/a-nuauco__x86.ads \ 890 s-atocou.adb<libgnat/s-atocou__builtin.adb 891 892# Implementation of symbolic traceback based on dwarf 893TRASYM_DWARF_UNIX_PAIRS = \ 894 s-trasym.adb<libgnat/s-trasym__dwarf.adb \ 895 s-mmosin.ads<libgnat/s-mmosin__unix.ads \ 896 s-mmosin.adb<libgnat/s-mmosin__unix.adb \ 897 s-mmauni.ads<libgnat/s-mmauni__long.ads 898 899TRASYM_DWARF_MINGW_PAIRS = \ 900 s-trasym.adb<libgnat/s-trasym__dwarf.adb \ 901 s-mmosin.ads<libgnat/s-mmosin__mingw.ads \ 902 s-mmosin.adb<libgnat/s-mmosin__mingw.adb 903 904TRASYM_DWARF_COMMON_OBJS = s-objrea$(objext) s-dwalin$(objext) s-mmap$(objext) \ 905 s-mmosin$(objext) 906 907TRASYM_DWARF_UNIX_OBJS = $(TRASYM_DWARF_COMMON_OBJS) s-mmauni$(objext) 908 909TRASYM_DWARF_MINGW_OBJS = $(TRASYM_DWARF_COMMON_OBJS) 910 911GNATRTL_128BIT_PAIRS = \ 912 a-decima.ads<libgnat/a-decima__128.ads \ 913 a-tideio.adb<libgnat/a-tideio__128.adb \ 914 a-tifiio.adb<libgnat/a-tifiio__128.adb \ 915 a-tiinio.adb<libgnat/a-tiinio__128.adb \ 916 a-timoio.adb<libgnat/a-timoio__128.adb \ 917 a-wtdeio.adb<libgnat/a-wtdeio__128.adb \ 918 a-wtfiio.adb<libgnat/a-wtfiio__128.adb \ 919 a-wtinio.adb<libgnat/a-wtinio__128.adb \ 920 a-wtmoio.adb<libgnat/a-wtmoio__128.adb \ 921 a-ztdeio.adb<libgnat/a-ztdeio__128.adb \ 922 a-ztfiio.adb<libgnat/a-ztfiio__128.adb \ 923 a-ztinio.adb<libgnat/a-ztinio__128.adb \ 924 a-ztmoio.adb<libgnat/a-ztmoio__128.adb \ 925 i-cexten.ads<libgnat/i-cexten__128.ads \ 926 s-scaval.ads<libgnat/s-scaval__128.ads \ 927 s-scaval.adb<libgnat/s-scaval__128.adb 928 929# Objects needed for 128-bit types 930GNATRTL_128BIT_OBJS = \ 931 s-arit128$(objext) \ 932 s-casi128$(objext) \ 933 s-caun128$(objext) \ 934 s-exnllli$(objext) \ 935 s-expllli$(objext) \ 936 s-explllu$(objext) \ 937 s-fode128$(objext) \ 938 s-fofi128$(objext) \ 939 s-imde128$(objext) \ 940 s-imfi128$(objext) \ 941 s-imglllb$(objext) \ 942 s-imgllli$(objext) \ 943 s-imglllu$(objext) \ 944 s-imglllw$(objext) \ 945 s-pack65$(objext) \ 946 s-pack66$(objext) \ 947 s-pack67$(objext) \ 948 s-pack68$(objext) \ 949 s-pack69$(objext) \ 950 s-pack70$(objext) \ 951 s-pack71$(objext) \ 952 s-pack72$(objext) \ 953 s-pack73$(objext) \ 954 s-pack74$(objext) \ 955 s-pack75$(objext) \ 956 s-pack76$(objext) \ 957 s-pack77$(objext) \ 958 s-pack78$(objext) \ 959 s-pack79$(objext) \ 960 s-pack80$(objext) \ 961 s-pack81$(objext) \ 962 s-pack82$(objext) \ 963 s-pack83$(objext) \ 964 s-pack84$(objext) \ 965 s-pack85$(objext) \ 966 s-pack86$(objext) \ 967 s-pack87$(objext) \ 968 s-pack88$(objext) \ 969 s-pack89$(objext) \ 970 s-pack90$(objext) \ 971 s-pack91$(objext) \ 972 s-pack92$(objext) \ 973 s-pack93$(objext) \ 974 s-pack94$(objext) \ 975 s-pack95$(objext) \ 976 s-pack96$(objext) \ 977 s-pack97$(objext) \ 978 s-pack98$(objext) \ 979 s-pack99$(objext) \ 980 s-pack100$(objext) \ 981 s-pack101$(objext) \ 982 s-pack102$(objext) \ 983 s-pack103$(objext) \ 984 s-pack104$(objext) \ 985 s-pack105$(objext) \ 986 s-pack106$(objext) \ 987 s-pack107$(objext) \ 988 s-pack108$(objext) \ 989 s-pack109$(objext) \ 990 s-pack110$(objext) \ 991 s-pack111$(objext) \ 992 s-pack112$(objext) \ 993 s-pack113$(objext) \ 994 s-pack114$(objext) \ 995 s-pack115$(objext) \ 996 s-pack116$(objext) \ 997 s-pack117$(objext) \ 998 s-pack118$(objext) \ 999 s-pack119$(objext) \ 1000 s-pack120$(objext) \ 1001 s-pack121$(objext) \ 1002 s-pack122$(objext) \ 1003 s-pack123$(objext) \ 1004 s-pack124$(objext) \ 1005 s-pack125$(objext) \ 1006 s-pack126$(objext) \ 1007 s-pack127$(objext) \ 1008 s-vade128$(objext) \ 1009 s-vafi128$(objext) \ 1010 s-valllli$(objext) \ 1011 s-vallllu$(objext) \ 1012 s-widllli$(objext) \ 1013 s-widlllu$(objext) 1014 1015# Shared library version 1016LIB_VERSION = $(strip $(shell grep ' Library_Version :' $(GNAT_SRC)/gnatvsn.ads | sed -e 's/.*"\(.*\)".*/\1/')) 1017 1018# Additional object files from C source to be added to libgnat. 1019EXTRA_LIBGNAT_OBJS= 1020 1021# Additional C source files to be added to libgnat without corresponding 1022# object file (#included files). This should include at least the GNAT 1023# specific header files required to rebuild the runtime library from sources. 1024EXTRA_LIBGNAT_SRCS= 1025 1026# Additional object files from Ada sources to be added in libgnat 1027EXTRA_GNATRTL_NONTASKING_OBJS= 1028 1029# Additional object files from Ada sources to be added in libgnarl 1030EXTRA_GNATRTL_TASKING_OBJS= 1031 1032# Subsets of extra libgnat sources that always go together 1033VX_SIGTRAMP_EXTRA_SRCS=sigtramp.h sigtramp-vxworks-target.inc 1034 1035# Additional object files that should go in the same directory as libgnat, 1036# aside the library itself. Typically useful for crtbegin/crtend kind of files. 1037EXTRA_ADALIB_OBJS= 1038 1039# GCC spec files to be installed in $(libsubdir), so --specs=<spec-filename> 1040# finds them at runtime. 1041GCC_SPEC_FILES= 1042 1043# $(filter-out PATTERN...,TEXT) removes all PATTERN words from TEXT. 1044# $(strip STRING) removes leading and trailing spaces from STRING. 1045# If what's left is null then it's a match. 1046 1047# PowerPC and e500v2 VxWorks 1048ifeq ($(strip $(filter-out powerpc% wrs vxworks vxworksspe vxworks7% vxworks7spe,$(target_cpu) $(target_vendor) $(target_os))),) 1049 1050 ifeq ($(strip $(filter-out e500%, $(target_alias))),) 1051 ARCH_STR=e500 1052 # gcc config translates the target e500v2-wrs-vxworks to 1053 # powerpc-wrs-vxworksspe. Let's keep the original alias here when 1054 # generating s-oscons.ads. 1055 target=$(target_alias) 1056 else 1057 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),) 1058 ARCH_STR=ppc64 1059 else 1060 ARCH_STR=ppc 1061 endif 1062 endif 1063 1064 VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks)) 1065 SVX=system-$(VX) 1066 1067 LIBGNAT_TARGET_PAIRS = \ 1068 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \ 1069 a-naliop.ads<libgnat/a-naliop__nolibm.ads \ 1070 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \ 1071 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \ 1072 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \ 1073 s-intman.ads<libgnarl/s-intman__vxworks.ads \ 1074 s-intman.adb<libgnarl/s-intman__vxworks.adb \ 1075 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \ 1076 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \ 1077 s-osprim.adb<libgnat/s-osprim__vxworks.adb \ 1078 s-parame.ads<libgnat/s-parame__vxworks.ads \ 1079 s-parame.adb<libgnat/s-parame__vxworks.adb \ 1080 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \ 1081 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \ 1082 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \ 1083 s-vxwork.ads<libgnarl/s-vxwork__ppc.ads \ 1084 g-socthi.ads<libgnat/g-socthi__vxworks.ads \ 1085 g-socthi.adb<libgnat/g-socthi__vxworks.adb \ 1086 g-sopowa.adb<libgnat/g-sopowa__posix.adb \ 1087 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \ 1088 $(ATOMICS_TARGET_PAIRS) \ 1089 $(ATOMICS_BUILTINS_TARGET_PAIRS) 1090 1091 # VxWorks 5 and 6 both use the same target triplet making them 1092 # indistinguishable in the context of this make file. Package 1093 # System.Stack_Checking.Operations is not needed on VxWorks 6 as it leads to 1094 # an undefined symbol when building a dynamic shared library. To alleviate 1095 # this problem and distinguish this case, we use the THREAD_KIND and include 1096 # the package only in default mode. 1097 1098 ifeq ($(strip $(filter-out default,$(THREAD_KIND))),) 1099 LIBGNAT_TARGET_PAIRS += \ 1100 s-stchop.ads<libgnat/s-stchop__limit.ads \ 1101 s-stchop.adb<libgnat/s-stchop__vxworks.adb 1102 EXTRA_GNATRTL_NONTASKING_OBJS+=s-stchop.o 1103 endif 1104 1105 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),) 1106 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 1107 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 1108 endif 1109 1110 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb 1111 1112 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),) 1113 LIBGNAT_TARGET_PAIRS += \ 1114 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \ 1115 s-vxwext.adb<libgnarl/s-vxwext__rtp.adb \ 1116 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-rtp.adb \ 1117 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp.ads 1118 1119 EH_MECHANISM=-gcc 1120 else 1121 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),) 1122 LIBGNAT_TARGET_PAIRS += \ 1123 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 1124 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \ 1125 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \ 1126 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \ 1127 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp-smp.ads 1128 1129 EH_MECHANISM=-gcc 1130 EXTRA_LIBGNAT_OBJS+=affinity.o 1131 else 1132 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),) 1133 LIBGNAT_TARGET_PAIRS += \ 1134 s-interr.adb<libgnarl/s-interr__vxworks.adb \ 1135 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 1136 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \ 1137 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \ 1138 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \ 1139 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads 1140 1141 EH_MECHANISM=-gcc 1142 EXTRA_LIBGNAT_OBJS+=affinity.o 1143 else 1144 LIBGNAT_TARGET_PAIRS += \ 1145 s-interr.adb<libgnarl/s-interr__vxworks.adb \ 1146 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb 1147 1148 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),) 1149 EH_MECHANISM=-gcc 1150 LIBGNAT_TARGET_PAIRS += \ 1151 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \ 1152 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb \ 1153 system.ads<libgnat/$(SVX)-$(ARCH_STR)-kernel.ads 1154 else 1155 LIBGNAT_TARGET_PAIRS += \ 1156 system.ads<libgnat/system-vxworks-ppc.ads 1157 endif 1158 endif 1159 EXTRA_GNATRTL_NONTASKING_OBJS+=i-vxinco.o i-vxwork.o i-vxwoio.o 1160 endif 1161 endif 1162 1163 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o 1164 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS) 1165 1166 EXTRA_GNATRTL_TASKING_OBJS += s-vxwork.o s-vxwext.o 1167 1168 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o 1169 1170 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),) 1171 ifeq ($(strip $(filter-out powerpc64, $(target_cpu))),) 1172 GCC_SPEC_FILES+=vxworks7-ppc64-rtp-base-link.spec 1173 else 1174 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec 1175 endif 1176 GCC_SPEC_FILES+=vxworks7-cert-rtp-link.spec 1177 else 1178 GCC_SPEC_FILES+=vxworks-$(ARCH_STR)-link.spec 1179 GCC_SPEC_FILES+=vxworks-cert-$(ARCH_STR)-link.spec 1180 GCC_SPEC_FILES+=vxworks-smp-$(ARCH_STR)-link.spec 1181 endif 1182endif 1183 1184# PowerPC and e500v2 VxWorks 653 1185ifeq ($(strip $(filter-out powerpc% wrs vxworksae vxworksaespe,$(target_cpu) $(target_vendor) $(target_os))),) 1186 1187 ifeq ($(strip $(filter-out e500%, $(target_alias))),) 1188 ARCH_STR=e500 1189 # gcc config translates the target e500v2-wrs-vxworks to 1190 # powerpc-wrs-vxworksspe. Let's keep the original alias here when 1191 # generating s-oscons.ads. 1192 target=$(target_alias) 1193 else 1194 ARCH_STR=ppc 1195 endif 1196 1197 # target pairs for vthreads runtime 1198 LIBGNAT_TARGET_PAIRS = \ 1199 a-elchha.adb<libgnat/a-elchha__vxworks-ppc-full.adb \ 1200 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \ 1201 a-naliop.ads<libgnat/a-naliop__nolibm.ads \ 1202 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \ 1203 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \ 1204 g-io.adb<hie/g-io__vxworks-cert.adb \ 1205 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \ 1206 s-interr.adb<libgnarl/s-interr__vxworks.adb \ 1207 s-intman.ads<libgnarl/s-intman__vxworks.ads \ 1208 s-intman.adb<libgnarl/s-intman__vxworks.adb \ 1209 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \ 1210 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \ 1211 s-osprim.adb<libgnat/s-osprim__vxworks.adb \ 1212 s-parame.ads<libgnat/s-parame__ae653.ads \ 1213 s-parame.adb<libgnat/s-parame__vxworks.adb \ 1214 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \ 1215 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \ 1216 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \ 1217 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \ 1218 s-vxwext.adb<libgnarl/s-vxwext__noints.adb \ 1219 s-vxwext.ads<libgnarl/s-vxwext__vthreads.ads \ 1220 s-vxwork.ads<libgnarl/s-vxwork__ppc.ads \ 1221 system.ads<libgnat/system-vxworks-$(ARCH_STR)-vthread.ads \ 1222 $(ATOMICS_TARGET_PAIRS) \ 1223 $(ATOMICS_BUILTINS_TARGET_PAIRS) 1224 1225 EH_MECHANISM=-gcc 1226 1227 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb 1228 1229 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o 1230 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o 1231 1232 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o 1233 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS) 1234 1235 # Extra pairs for the vthreads runtime 1236 ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),) 1237 LIBGNAT_TARGET_PAIRS += \ 1238 s-thread.adb<libgnat/s-thread__ae653.adb \ 1239 s-osvers.ads<libgnat/s-osvers__vxworks-653.ads \ 1240 $(DUMMY_SOCKETS_TARGET_PAIRS) 1241 1242 GNATRTL_SOCKETS_OBJS = 1243 EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o s-osvers.o 1244 else 1245 LIBGNAT_TARGET_PAIRS += \ 1246 g-socthi.ads<libgnat/g-socthi__vxworks.ads \ 1247 g-socthi.adb<libgnat/g-socthi__vxworks.adb \ 1248 g-sopowa.adb<libgnat/g-sopowa__posix.adb \ 1249 g-stsifd.adb<libgnat/g-stsifd__sockets.adb 1250 endif 1251 1252endif 1253 1254# VxWorksae / VxWorks 653 for x86 (vxsim) - ?? VxWorks mils not implemented 1255ifeq ($(strip $(filter-out %86 wrs vxworksae,$(target_cpu) $(target_vendor) $(target_os))),) 1256 # target pairs for kernel + vthreads runtime 1257 LIBGNAT_TARGET_PAIRS = \ 1258 a-elchha.adb<libgnat/a-elchha__vxworks-ppc-full.adb \ 1259 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \ 1260 a-naliop.ads<libgnat/a-naliop__nolibm.ads \ 1261 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \ 1262 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \ 1263 g-io.adb<hie/g-io__vxworks-cert.adb \ 1264 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \ 1265 s-interr.adb<libgnarl/s-interr__vxworks.adb \ 1266 s-intman.ads<libgnarl/s-intman__vxworks.ads \ 1267 s-intman.adb<libgnarl/s-intman__vxworks.adb \ 1268 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \ 1269 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \ 1270 s-osprim.adb<libgnat/s-osprim__vxworks.adb \ 1271 s-parame.ads<libgnat/s-parame__ae653.ads \ 1272 s-parame.adb<libgnat/s-parame__vxworks.adb \ 1273 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \ 1274 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \ 1275 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \ 1276 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \ 1277 s-vxwext.adb<libgnarl/s-vxwext__noints.adb \ 1278 s-vxwext.ads<libgnarl/s-vxwext__vthreads.ads \ 1279 s-vxwork.ads<libgnarl/s-vxwork__x86.ads \ 1280 system.ads<libgnat/system-vxworks-x86-vthread.ads \ 1281 $(ATOMICS_TARGET_PAIRS) \ 1282 $(ATOMICS_BUILTINS_TARGET_PAIRS) 1283 1284 EH_MECHANISM=-gcc 1285 1286 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb 1287 1288 EXTRA_GNATRTL_NONTASKING_OBJS=i-vxwork.o i-vxwoio.o s-thread.o 1289 EXTRA_GNATRTL_TASKING_OBJS=i-vxinco.o s-vxwork.o s-vxwext.o 1290 1291 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o 1292 GNATRTL_SOCKETS_OBJS = 1293 1294 # Extra pairs for the vthreads runtime 1295 ifeq ($(strip $(filter-out vthreads,$(THREAD_KIND))),) 1296 LIBGNAT_TARGET_PAIRS += \ 1297 s-thread.adb<libgnat/s-thread__ae653.adb \ 1298 s-osvers.ads<libgnat/s-osvers__vxworks-653.ads \ 1299 $(DUMMY_SOCKETS_TARGET_PAIRS) 1300 1301 GNATRTL_SOCKETS_OBJS = 1302 EXTRA_GNATRTL_NONTASKING_OBJS += s-thread.o s-osvers.o 1303 else 1304 LIBGNAT_TARGET_PAIRS += \ 1305 g-socthi.ads<libgnat/g-socthi__vxworks.ads \ 1306 g-socthi.adb<libgnat/g-socthi__vxworks.adb \ 1307 g-sopowa.adb<libgnat/g-sopowa__posix.adb \ 1308 g-stsifd.adb<libgnat/g-stsifd__sockets.adb 1309 endif 1310 1311endif 1312 1313# x86/x86_64 VxWorks 1314ifeq ($(strip $(filter-out %86 x86_64 wrs vxworks vxworks7%,$(target_cpu) $(target_vendor) $(target_os))),) 1315 1316 LIBGNAT_TARGET_PAIRS= \ 1317 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \ 1318 i-vxwork.ads<libgnat/i-vxwork__x86.ads \ 1319 a-naliop.ads<libgnat/a-naliop__nolibm.ads \ 1320 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \ 1321 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \ 1322 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \ 1323 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \ 1324 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \ 1325 s-intman.ads<libgnarl/s-intman__vxworks.ads \ 1326 s-intman.adb<libgnarl/s-intman__vxworks.adb \ 1327 s-osprim.adb<libgnat/s-osprim__vxworks.adb \ 1328 s-parame.ads<libgnat/s-parame__vxworks.ads \ 1329 s-parame.adb<libgnat/s-parame__vxworks.adb \ 1330 s-stchop.ads<libgnat/s-stchop__limit.ads \ 1331 s-stchop.adb<libgnat/s-stchop__vxworks.adb \ 1332 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \ 1333 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \ 1334 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \ 1335 s-vxwork.ads<libgnarl/s-vxwork__x86.ads \ 1336 g-socthi.ads<libgnat/g-socthi__vxworks.ads \ 1337 g-socthi.adb<libgnat/g-socthi__vxworks.adb \ 1338 g-sopowa.adb<libgnat/g-sopowa__posix.adb \ 1339 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \ 1340 $(ATOMICS_TARGET_PAIRS) 1341 1342 VX=$(strip $(if $(filter vxworks7%, $(target_os)), vxworks7, vxworks)) 1343 SVX=system-$(VX) 1344 1345 ifeq ($(strip $(filter-out x86_64, $(target_cpu))),) 1346 X86CPU=x86_64 1347 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS) 1348 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 1349 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 1350 else 1351 X86CPU=x86 1352 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS) 1353 endif 1354 1355 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb 1356 1357 EH_MECHANISM=-gcc 1358 1359 # The CPU setting for VxSim varies with the 1360 # host (Windows or Linux) 1361 # target (VxWorks6 or VxWorks7) 1362 # runtime (rtp or kernel) 1363 # ------------------------------------------------------------- 1364 # vx6 vx7 1365 # Windows (host_os = mingw32) 1366 # kernel SIMNT SIMNT 1367 # rtp SIMPENTIUM SIMNT 1368 # Linux (host_os = linux-gnu) 1369 # kernel SIMLINUX SIMLINUX 1370 # rtp SIMPENTIUM SIMLINUX 1371 # ------------------------------------------------------------- 1372 # It is overridden by VXSIM_CPU only in files init-vxsim.c and 1373 # sigtramp-vxworks-vxsim.c which contain functions determined at 1374 # runtime to be called if a program is running on VxSim vs real hardware 1375 # (due to differences in signal context for unwinding). 1376 1377 ifneq ($(strip $(filter-out vxworks7, $(target_os))),) 1378 ifeq ($(strip $(filter-out vxworks rtp rtp-smp,$(target_os) $(THREAD_KIND))),) 1379 VXSIM_CPU = SIMPENTIUM 1380 else 1381 ifeq ($(strip $(filter-out kernel kernel-smp rtp rtp-smp,$(THREAD_KIND))),) 1382 ifeq ($(strip $(filter-out linux%,$(host_os))),) 1383 # Linux 1384 VXSIM_CPU = SIMLINUX 1385 else 1386 # Windows 1387 VXSIM_CPU = SIMNT 1388 endif 1389 endif 1390 endif 1391 1392 GNATLIBCFLAGS_FOR_C := $(GNATLIBCFLAGS_FOR_C) -D__VXSIM_CPU__=$(VXSIM_CPU) 1393 endif 1394 1395 ifeq ($(strip $(filter-out rtp,$(THREAD_KIND))),) 1396 LIBGNAT_TARGET_PAIRS += \ 1397 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \ 1398 s-vxwext.adb<libgnarl/s-vxwext__rtp.adb \ 1399 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-rtp.adb \ 1400 system.ads<libgnat/$(SVX)-x86-rtp.ads 1401 else 1402 ifeq ($(strip $(filter-out rtp-smp, $(THREAD_KIND))),) 1403 LIBGNAT_TARGET_PAIRS += \ 1404 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 1405 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \ 1406 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \ 1407 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \ 1408 system.ads<libgnat/$(SVX)-$(X86CPU)-rtp-smp.ads 1409 1410 EXTRA_LIBGNAT_OBJS+=affinity.o 1411 else 1412 ifeq ($(strip $(filter-out kernel-smp, $(THREAD_KIND))),) 1413 LIBGNAT_TARGET_PAIRS += \ 1414 s-interr.adb<libgnarl/s-interr__vxworks.adb \ 1415 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 1416 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \ 1417 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \ 1418 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \ 1419 system.ads<libgnat/$(SVX)-$(X86CPU)-kernel.ads 1420 1421 EXTRA_LIBGNAT_OBJS+=affinity.o 1422 else 1423 LIBGNAT_TARGET_PAIRS += \ 1424 s-interr.adb<libgnarl/s-interr__vxworks.adb \ 1425 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb 1426 1427 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),) 1428 LIBGNAT_TARGET_PAIRS += \ 1429 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \ 1430 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb \ 1431 system.ads<libgnat/$(SVX)-x86-kernel.ads 1432 else 1433 LIBGNAT_TARGET_PAIRS += \ 1434 system.ads<libgnat/system-vxworks-x86.ads 1435 endif 1436 endif 1437 1438 EXTRA_GNATRTL_NONTASKING_OBJS += i-vxwork.o i-vxwoio.o 1439 endif 1440 endif 1441 1442 EXTRA_GNATRTL_NONTASKING_OBJS += s-stchop.o 1443 EXTRA_GNATRTL_TASKING_OBJS += i-vxinco.o s-vxwork.o s-vxwext.o 1444 1445 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o 1446 1447 EXTRA_LIBGNAT_OBJS+=sigtramp-vxworks.o 1448 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS) 1449 1450 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),) 1451 GCC_SPEC_FILES+=vxworks7-$(X86CPU)-rtp-base-link.spec 1452 GCC_SPEC_FILES+=vxworks7-cert-rtp-link.spec 1453 else 1454 GCC_SPEC_FILES+=vxworks-x86-link.spec 1455 GCC_SPEC_FILES+=vxworks-cert-x86-link.spec 1456 GCC_SPEC_FILES+=vxworks-smp-x86-link.spec 1457 endif 1458endif 1459 1460# ARM and Aarch64 VxWorks 1461ifeq ($(strip $(filter-out aarch64 arm% coff wrs vx%,$(target_cpu) $(target_vendor) $(target_os))),) 1462 1463 LIBGNAT_TARGET_PAIRS = \ 1464 a-intnam.ads<libgnarl/a-intnam__vxworks.ads \ 1465 a-naliop.ads<libgnat/a-naliop__nolibm.ads \ 1466 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \ 1467 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \ 1468 s-inmaop.adb<libgnarl/s-inmaop__vxworks.adb \ 1469 s-interr.adb<libgnarl/s-interr__vxworks.adb \ 1470 s-intman.ads<libgnarl/s-intman__vxworks.ads \ 1471 s-intman.adb<libgnarl/s-intman__vxworks.adb \ 1472 s-osinte.adb<libgnarl/s-osinte__vxworks.adb \ 1473 s-osinte.ads<libgnarl/s-osinte__vxworks.ads \ 1474 s-osprim.adb<libgnat/s-osprim__vxworks.adb \ 1475 s-parame.ads<libgnat/s-parame__vxworks.ads \ 1476 s-parame.adb<libgnat/s-parame__vxworks.adb \ 1477 s-stchop.ads<libgnat/s-stchop__limit.ads \ 1478 s-stchop.adb<libgnat/s-stchop__vxworks.adb \ 1479 s-taprop.adb<libgnarl/s-taprop__vxworks.adb \ 1480 s-tasinf.ads<libgnarl/s-tasinf__vxworks.ads \ 1481 s-taspri.ads<libgnarl/s-taspri__vxworks.ads \ 1482 g-socthi.ads<libgnat/g-socthi__vxworks.ads \ 1483 g-socthi.adb<libgnat/g-socthi__vxworks.adb \ 1484 g-sopowa.adb<libgnat/g-sopowa__posix.adb \ 1485 g-stsifd.adb<libgnat/g-stsifd__sockets.adb 1486 1487 ifeq ($(strip $(filter-out aarch64, $(target_cpu))),) 1488 ARCH_STR=aarch64 1489 VX=vxworks7 1490 EH_MECHANISM=-gcc 1491 SIGTRAMP_OBJ=sigtramp-vxworks.o 1492 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) \ 1493 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads 1494 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 1495 else 1496 ifeq ($(strip $(filter-out arm%, $(target_cpu))),) 1497 ARCH_STR=arm 1498 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),) 1499 VX=vxworks7 1500 EH_MECHANISM=-arm 1501 SIGTRAMP_OBJ=sigtramp-armvxworks.o 1502 else 1503 VX=vxworks 1504 EH_MECHANISM=-gcc 1505 SIGTRAMP_OBJ=sigtramp-vxworks.o 1506 endif 1507 else 1508 ARCH_STR=coff 1509 endif 1510 endif 1511 1512 LIBGNAT_TARGET_PAIRS += s-vxwork.ads<libgnarl/s-vxwork__$(ARCH_STR).ads 1513 1514 SVX=system-$(VX) 1515 1516 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb 1517 1518 ifeq ($(strip $(filter-out rtp-smp,$(THREAD_KIND))),) 1519 LIBGNAT_TARGET_PAIRS += \ 1520 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 1521 s-vxwext.ads<libgnarl/s-vxwext__rtp.ads \ 1522 s-vxwext.adb<libgnarl/s-vxwext__rtp-smp.adb \ 1523 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \ 1524 system.ads<libgnat/$(SVX)-$(ARCH_STR)-rtp-smp.ads 1525 1526 EXTRA_LIBGNAT_OBJS+=affinity.o 1527 1528 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ) 1529 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS) 1530 else 1531 ifeq ($(strip $(filter-out kernel-smp,$(THREAD_KIND))),) 1532 LIBGNAT_TARGET_PAIRS += \ 1533 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 1534 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks-tls.adb \ 1535 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \ 1536 s-vxwext.adb<libgnarl/s-vxwext__kernel-smp.adb \ 1537 system.ads<libgnat/$(SVX)-$(ARCH_STR).ads 1538 1539 EXTRA_LIBGNAT_OBJS+=affinity.o 1540 1541 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ) 1542 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS) 1543 else 1544 LIBGNAT_TARGET_PAIRS += \ 1545 s-tpopsp.adb<libgnarl/s-tpopsp__vxworks.adb \ 1546 system.ads<libgnat/$(SVX)-$(ARCH_STR).ads 1547 1548 ifeq ($(strip $(filter-out kernel,$(THREAD_KIND))),) 1549 LIBGNAT_TARGET_PAIRS += \ 1550 s-vxwext.ads<libgnarl/s-vxwext__kernel.ads \ 1551 s-vxwext.adb<libgnarl/s-vxwext__kernel.adb 1552 1553 EXTRA_LIBGNAT_OBJS+=$(SIGTRAMP_OBJ) 1554 EXTRA_LIBGNAT_SRCS+=$(VX_SIGTRAMP_EXTRA_SRCS) 1555 endif 1556 endif 1557 endif 1558 1559 EXTRA_GNATRTL_NONTASKING_OBJS += i-vxwork.o i-vxwoio.o s-stchop.o 1560 EXTRA_GNATRTL_TASKING_OBJS += i-vxinco.o s-vxwork.o s-vxwext.o 1561 1562 EXTRA_LIBGNAT_OBJS+=vx_stack_info.o 1563 1564 ifeq ($(strip $(filter-out arm vxworks7%, $(target_cpu) $(target_os))),) 1565 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec 1566 else 1567 ifeq ($(strip $(filter-out aarch64, $(target_cpu))),) 1568 GCC_SPEC_FILES+=vxworks7-rtp-base-link.spec 1569 endif 1570 1571 ifneq ($(strip $(filter-out vxworks7%, $(target_os))),) 1572 GCC_SPEC_FILES+=vxworks-arm-link.spec 1573 GCC_SPEC_FILES+=vxworks-smp-arm-link.spec 1574 endif 1575 endif 1576 ifeq ($(strip $(filter-out vxworks7%, $(target_os))),) 1577 GCC_SPEC_FILES+=vxworks7-cert-rtp-link.spec 1578 endif 1579endif 1580 1581# ARM android 1582ifeq ($(strip $(filter-out arm% linux-androideabi,$(target_cpu) $(target_os))),) 1583 LIBGNAT_TARGET_PAIRS = \ 1584 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 1585 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 1586 s-intman.adb<libgnarl/s-intman__android.adb \ 1587 s-linux.ads<libgnarl/s-linux__android.ads \ 1588 s-osinte.adb<libgnarl/s-osinte__android.adb \ 1589 s-osinte.ads<libgnarl/s-osinte__android.ads \ 1590 s-osprim.adb<libgnat/s-osprim__posix.adb \ 1591 s-taprop.adb<libgnarl/s-taprop__posix.adb \ 1592 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 1593 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ 1594 $(ATOMICS_TARGET_PAIRS) \ 1595 $(ATOMICS_BUILTINS_TARGET_PAIRS) \ 1596 system.ads<libgnat/system-linux-arm.ads 1597 1598 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 1599 1600 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o 1601 EXTRA_LIBGNAT_OBJS+=sigtramp-armdroid.o 1602 EXTRA_LIBGNAT_SRCS+=sigtramp.h 1603 EH_MECHANISM=-arm 1604 THREADSLIB = 1605 GNATLIB_SHARED = gnatlib-shared-dual 1606 LIBRARY_VERSION := $(LIB_VERSION) 1607endif 1608 1609# AARCH64 QNX 1610ifeq ($(strip $(filter-out aarch64 %qnx,$(target_cpu) $(target_os))),) 1611 LIBGNAT_TARGET_PAIRS = \ 1612 a-intnam.ads<libgnarl/a-intnam__qnx.ads \ 1613 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ 1614 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 1615 s-intman.adb<libgnarl/s-intman__qnx.adb \ 1616 s-osinte.adb<libgnarl/s-osinte__qnx.adb \ 1617 s-osinte.ads<libgnarl/s-osinte__qnx.ads \ 1618 s-osprim.adb<libgnat/s-osprim__posix.adb \ 1619 s-qnx.ads<libgnarl/s-qnx.ads \ 1620 s-taprop.adb<libgnarl/s-taprop__qnx.adb \ 1621 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 1622 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ 1623 g-soliop.ads<libgnat/g-soliop__qnx.ads \ 1624 $(ATOMICS_TARGET_PAIRS) \ 1625 $(ATOMICS_BUILTINS_TARGET_PAIRS) \ 1626 $(GNATRTL_128BIT_PAIRS) \ 1627 system.ads<libgnat/system-qnx-aarch64.ads 1628 1629 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 1630 1631 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS) 1632 EXTRA_GNATRTL_TASKING_OBJS=s-qnx.o 1633 EXTRA_LIBGNAT_OBJS+=sigtramp-qnx.o 1634 EXTRA_LIBGNAT_SRCS+=sigtramp.h 1635 EH_MECHANISM=-gcc 1636 1637 SO_OPTS= -shared-libgcc -Wl,-soname, 1638 MISCLIB= -lsocket 1639 THREADSLIB= 1640 GNATLIB_SHARED = gnatlib-shared-dual 1641 LIBRARY_VERSION := $(LIB_VERSION) 1642endif 1643 1644# SPARC Solaris 1645ifeq ($(strip $(filter-out sparc% sun solaris%,$(target_cpu) $(target_vendor) $(target_os))),) 1646 LIBGNAT_TARGET_PAIRS = \ 1647 a-intnam.ads<libgnarl/a-intnam__solaris.ads \ 1648 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ 1649 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 1650 s-intman.adb<libgnarl/s-intman__solaris.adb \ 1651 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 1652 s-osinte.adb<libgnarl/s-osinte__solaris.adb \ 1653 s-osinte.ads<libgnarl/s-osinte__solaris.ads \ 1654 s-osprim.adb<libgnat/s-osprim__solaris.adb \ 1655 s-taprop.adb<libgnarl/s-taprop__solaris.adb \ 1656 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \ 1657 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \ 1658 s-taspri.ads<libgnarl/s-taspri__solaris.ads \ 1659 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \ 1660 g-soliop.ads<libgnat/g-soliop__solaris.ads \ 1661 $(TRASYM_DWARF_UNIX_PAIRS) \ 1662 $(ATOMICS_TARGET_PAIRS) \ 1663 $(ATOMICS_BUILTINS_TARGET_PAIRS) \ 1664 system.ads<libgnat/system-solaris-sparc.ads 1665 1666 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS) 1667 1668 ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),) 1669 ifneq ($(strip $(MULTISUBDIR)),/sparcv8plus) 1670 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 1671 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 1672 endif 1673 else 1674 ifeq ($(strip $(MULTISUBDIR)),/sparcv9) 1675 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 1676 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 1677 endif 1678 endif 1679 1680 EH_MECHANISM=-gcc 1681 MISCLIB = -lnsl -lsocket 1682 SO_OPTS = -Wl,-h, 1683 GNATLIB_SHARED = gnatlib-shared-dual 1684 GMEM_LIB = gmemlib 1685 LIBRARY_VERSION := $(LIB_VERSION) 1686endif 1687 1688# x86 and x86-64 Solaris 1689ifeq ($(strip $(filter-out %86 %x86_64 solaris2%,$(target_cpu) $(target_os))),) 1690 LIBGNAT_TARGET_PAIRS_COMMON = \ 1691 a-intnam.ads<libgnarl/a-intnam__solaris.ads \ 1692 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 1693 s-intman.adb<libgnarl/s-intman__solaris.adb \ 1694 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 1695 s-osinte.adb<libgnarl/s-osinte__solaris.adb \ 1696 s-osinte.ads<libgnarl/s-osinte__solaris.ads \ 1697 s-osprim.adb<libgnat/s-osprim__solaris.adb \ 1698 s-taprop.adb<libgnarl/s-taprop__solaris.adb \ 1699 s-tasinf.adb<libgnarl/s-tasinf__solaris.adb \ 1700 s-tasinf.ads<libgnarl/s-tasinf__solaris.ads \ 1701 s-taspri.ads<libgnarl/s-taspri__solaris.ads \ 1702 s-tpopsp.adb<libgnarl/s-tpopsp__solaris.adb \ 1703 g-soliop.ads<libgnat/g-soliop__solaris.ads \ 1704 $(TRASYM_DWARF_UNIX_PAIRS) \ 1705 $(ATOMICS_TARGET_PAIRS) \ 1706 system.ads<libgnat/system-solaris-x86.ads 1707 1708 ifeq ($(strip $(filter-out %86 solaris2%,$(target_cpu) $(target_os))),) 1709 ifeq ($(strip $(MULTISUBDIR)),/amd64) 1710 LIBGNAT_TARGET_PAIRS = \ 1711 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS) 1712 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 1713 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 1714 else 1715 LIBGNAT_TARGET_PAIRS = \ 1716 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS) 1717 endif 1718 else 1719 ifeq ($(strip $(MULTISUBDIR)),/32) 1720 LIBGNAT_TARGET_PAIRS = \ 1721 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_TARGET_PAIRS) 1722 else 1723 LIBGNAT_TARGET_PAIRS = \ 1724 $(LIBGNAT_TARGET_PAIRS_COMMON) $(X86_64_TARGET_PAIRS) 1725 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 1726 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 1727 endif 1728 endif 1729 1730 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o 1731 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS) 1732 1733 EH_MECHANISM=-gcc 1734 MISCLIB = -lnsl -lsocket 1735 SO_OPTS = -Wl,-h, 1736 GNATLIB_SHARED = gnatlib-shared-dual 1737 GMEM_LIB = gmemlib 1738 LIBRARY_VERSION := $(LIB_VERSION) 1739endif 1740 1741# x86 Linux 1742ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),) 1743 LIBGNAT_TARGET_PAIRS = \ 1744 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 1745 a-synbar.adb<libgnarl/a-synbar__posix.adb \ 1746 a-synbar.ads<libgnarl/a-synbar__posix.ads \ 1747 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 1748 s-intman.adb<libgnarl/s-intman__posix.adb \ 1749 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \ 1750 $(TRASYM_DWARF_UNIX_PAIRS) \ 1751 s-tsmona.adb<libgnat/s-tsmona__linux.adb \ 1752 a-exetim.adb<libgnarl/a-exetim__posix.adb \ 1753 a-exetim.ads<libgnarl/a-exetim__default.ads \ 1754 s-linux.ads<libgnarl/s-linux.ads \ 1755 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 1756 $(ATOMICS_TARGET_PAIRS) \ 1757 system.ads<libgnat/system-linux-x86.ads 1758 1759 ifeq ($(strip $(MULTISUBDIR)),/64) 1760 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS) 1761 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 1762 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 1763 else 1764 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS) 1765 endif 1766 1767 LIBGNAT_TARGET_PAIRS += \ 1768 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 1769 s-osinte.ads<libgnarl/s-osinte__linux.ads \ 1770 s-osprim.adb<libgnat/s-osprim__posix.adb \ 1771 s-taprop.adb<libgnarl/s-taprop__linux.adb \ 1772 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \ 1773 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \ 1774 s-taspri.ads<libgnarl/s-taspri__posix.ads 1775 1776 EH_MECHANISM=-gcc 1777 THREADSLIB = -lpthread -lrt 1778 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o 1779 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS) 1780 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o 1781 1782 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 1783 1784 GNATLIB_SHARED = gnatlib-shared-dual 1785 MISCLIB = -ldl 1786 GMEM_LIB = gmemlib 1787 LIBRARY_VERSION := $(LIB_VERSION) 1788 1789 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer 1790endif 1791 1792# x86 kfreebsd 1793ifeq ($(strip $(filter-out %86 kfreebsd%,$(target_cpu) $(target_os))),) 1794 LIBGNAT_TARGET_PAIRS = \ 1795 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \ 1796 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 1797 s-intman.adb<libgnarl/s-intman__posix.adb \ 1798 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 1799 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \ 1800 s-osprim.adb<libgnat/s-osprim__posix.adb \ 1801 s-taprop.adb<libgnarl/s-taprop__posix.adb \ 1802 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 1803 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ 1804 $(TRASYM_DWARF_UNIX_PAIRS) \ 1805 $(ATOMICS_TARGET_PAIRS) \ 1806 $(X86_TARGET_PAIRS) \ 1807 system.ads<libgnat/system-freebsd.ads 1808 1809 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 1810 1811 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o 1812 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS) 1813 1814 EH_MECHANISM=-gcc 1815 THREADSLIB = -lpthread 1816 GNATLIB_SHARED = gnatlib-shared-dual 1817 GMEM_LIB = gmemlib 1818 LIBRARY_VERSION := $(LIB_VERSION) 1819 MISCLIB = -lutil 1820endif 1821 1822# i[3456]86-pc-gnu i.e. GNU Hurd 1823ifeq ($(strip $(filter-out %86 pc gnu,$(target_cpu) $(target_vendor) $(target_os))),) 1824 LIBGNAT_TARGET_PAIRS = \ 1825 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \ 1826 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 1827 s-intman.adb<libgnarl/s-intman__posix.adb \ 1828 s-osinte.adb<libgnarl/s-osinte__gnu.adb \ 1829 s-osinte.ads<libgnarl/s-osinte__gnu.ads \ 1830 s-osprim.adb<libgnat/s-osprim__posix.adb \ 1831 s-taprop.adb<libgnarl/s-taprop__posix.adb \ 1832 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 1833 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ 1834 $(ATOMICS_TARGET_PAIRS) \ 1835 $(X86_TARGET_PAIRS) \ 1836 system.ads<libgnat/system-freebsd.ads 1837 1838 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 1839 1840 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o 1841 1842 EH_MECHANISM=-gcc 1843 THREADSLIB = -lpthread 1844 GNATLIB_SHARED = gnatlib-shared-dual 1845 GMEM_LIB = gmemlib 1846 LIBRARY_VERSION := $(LIB_VERSION) 1847endif 1848 1849ifeq ($(strip $(filter-out x86_64 kfreebsd%,$(target_cpu) $(target_os))),) 1850 LIBGNAT_TARGET_PAIRS = \ 1851 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \ 1852 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 1853 s-intman.adb<libgnarl/s-intman__posix.adb \ 1854 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 1855 s-osinte.ads<libgnarl/s-osinte__kfreebsd-gnu.ads \ 1856 s-osprim.adb<libgnat/s-osprim__posix.adb \ 1857 s-taprop.adb<libgnarl/s-taprop__posix.adb \ 1858 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 1859 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ 1860 $(ATOMICS_TARGET_PAIRS) \ 1861 $(X86_64_TARGET_PAIRS) \ 1862 $(GNATRTL_128BIT_PAIRS) \ 1863 system.ads<libgnat/system-freebsd.ads 1864 1865 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS) 1866 1867 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 1868 1869 EH_MECHANISM=-gcc 1870 THREADSLIB = -lpthread 1871 GNATLIB_SHARED = gnatlib-shared-dual 1872 GMEM_LIB = gmemlib 1873 LIBRARY_VERSION := $(LIB_VERSION) 1874endif 1875 1876# aarch64 FreeBSD 1877ifeq ($(strip $(filter-out %aarch64 freebsd%,$(target_cpu) $(target_os))),) 1878 LIBGNAT_TARGET_PAIRS = \ 1879 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \ 1880 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ 1881 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 1882 s-intman.adb<libgnarl/s-intman__posix.adb \ 1883 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 1884 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \ 1885 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \ 1886 s-osprim.adb<libgnat/s-osprim__posix.adb \ 1887 s-taprop.adb<libgnarl/s-taprop__posix.adb \ 1888 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 1889 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \ 1890 $(ATOMICS_TARGET_PAIRS) \ 1891 $(ATOMICS_BUILTINS_TARGET_PAIRS) \ 1892 $(GNATRTL_128BIT_PAIRS) \ 1893 system.ads<libgnat/system-freebsd.ads 1894 1895 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS) 1896 1897 GNATLIB_SHARED = gnatlib-shared-dual 1898 1899 EH_MECHANISM=-gcc 1900 THREADSLIB= -lpthread 1901 GMEM_LIB = gmemlib 1902 LIBRARY_VERSION := $(LIB_VERSION) 1903 MISCLIB = -lutil 1904endif 1905 1906# x86 FreeBSD 1907ifeq ($(strip $(filter-out %86 freebsd%,$(target_cpu) $(target_os))),) 1908 LIBGNAT_TARGET_PAIRS = \ 1909 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \ 1910 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 1911 s-intman.adb<libgnarl/s-intman__posix.adb \ 1912 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 1913 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \ 1914 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \ 1915 s-osprim.adb<libgnat/s-osprim__posix.adb \ 1916 s-taprop.adb<libgnarl/s-taprop__posix.adb \ 1917 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 1918 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \ 1919 $(TRASYM_DWARF_UNIX_PAIRS) \ 1920 $(ATOMICS_TARGET_PAIRS) \ 1921 $(X86_TARGET_PAIRS) \ 1922 system.ads<libgnat/system-freebsd.ads 1923 1924 GNATLIB_SHARED = gnatlib-shared-dual 1925 1926 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o 1927 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS) 1928 1929 EH_MECHANISM=-gcc 1930 THREADSLIB= -lpthread 1931 GMEM_LIB = gmemlib 1932 LIBRARY_VERSION := $(LIB_VERSION) 1933 MISCLIB = -lutil 1934endif 1935 1936# x86-64 FreeBSD 1937ifeq ($(strip $(filter-out %86_64 freebsd%,$(target_cpu) $(target_os))),) 1938 LIBGNAT_TARGET_PAIRS = \ 1939 a-intnam.ads<libgnarl/a-intnam__freebsd.ads \ 1940 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 1941 s-intman.adb<libgnarl/s-intman__posix.adb \ 1942 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 1943 s-osinte.adb<libgnarl/s-osinte__freebsd.adb \ 1944 s-osinte.ads<libgnarl/s-osinte__freebsd.ads \ 1945 s-osprim.adb<libgnat/s-osprim__posix.adb \ 1946 s-taprop.adb<libgnarl/s-taprop__posix.adb \ 1947 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 1948 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \ 1949 $(TRASYM_DWARF_UNIX_PAIRS) \ 1950 $(ATOMICS_TARGET_PAIRS) \ 1951 $(X86_64_TARGET_PAIRS) \ 1952 $(GNATRTL_128BIT_PAIRS) \ 1953 system.ads<libgnat/system-freebsd.ads 1954 1955 GNATLIB_SHARED = gnatlib-shared-dual 1956 1957 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o 1958 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS) 1959 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 1960 1961 EH_MECHANISM=-gcc 1962 THREADSLIB= -lpthread 1963 GMEM_LIB = gmemlib 1964 LIBRARY_VERSION := $(LIB_VERSION) 1965 MISCLIB = -lutil 1966endif 1967 1968# x86-64 DragonFly 1969ifeq ($(strip $(filter-out %86_64 dragonfly%,$(target_cpu) $(target_os))),) 1970 LIBGNAT_TARGET_PAIRS = \ 1971 a-intnam.ads<libgnarl/a-intnam__dragonfly.ads \ 1972 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 1973 s-intman.adb<libgnarl/s-intman__posix.adb \ 1974 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 1975 s-osinte.adb<libgnarl/s-osinte__dragonfly.adb \ 1976 s-osinte.ads<libgnarl/s-osinte__dragonfly.ads \ 1977 s-osprim.adb<libgnat/s-osprim__posix.adb \ 1978 s-taprop.adb<libgnarl/s-taprop__posix.adb \ 1979 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 1980 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \ 1981 $(ATOMICS_TARGET_PAIRS) \ 1982 $(X86_64_TARGET_PAIRS) \ 1983 $(GNATRTL_128BIT_PAIRS) \ 1984 system.ads<libgnat/system-dragonfly-x86_64.ads 1985 1986 GNATLIB_SHARED = gnatlib-shared-dual 1987 1988 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o 1989 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 1990 1991 EH_MECHANISM=-gcc 1992 THREADSLIB= -lpthread 1993 GMEM_LIB = gmemlib 1994 LIBRARY_VERSION := $(LIB_VERSION) 1995 MISCLIB = -lutil 1996endif 1997 1998# S390 Linux 1999ifeq ($(strip $(filter-out s390% linux%,$(target_cpu) $(target_os))),) 2000 LIBGNAT_TARGET_PAIRS = \ 2001 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 2002 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ 2003 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2004 s-intman.adb<libgnarl/s-intman__posix.adb \ 2005 s-linux.ads<libgnarl/s-linux.ads \ 2006 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 2007 s-osinte.ads<libgnarl/s-osinte__linux.ads \ 2008 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2009 s-taprop.adb<libgnarl/s-taprop__linux.adb \ 2010 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \ 2011 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \ 2012 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \ 2013 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ 2014 system.ads<libgnat/system-linux-s390.ads 2015 2016 ifeq ($(strip $(filter-out s390x,$(target_cpu))),) 2017 ifneq ($(strip $(MULTISUBDIR)),/32) 2018 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 2019 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2020 endif 2021 else 2022 ifeq ($(strip $(MULTISUBDIR)),/64) 2023 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 2024 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2025 endif 2026 endif 2027 2028 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 2029 2030 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o 2031 EH_MECHANISM=-gcc 2032 THREADSLIB = -lpthread 2033 GNATLIB_SHARED = gnatlib-shared-dual 2034 LIBRARY_VERSION := $(LIB_VERSION) 2035endif 2036 2037# HP/PA HP-UX 10 2038ifeq ($(strip $(filter-out hppa% hp hpux10%,$(target_cpu) $(target_vendor) $(target_os))),) 2039 LIBGNAT_TARGET_PAIRS = \ 2040 a-intnam.ads<libgnarl/a-intnam__hpux.ads \ 2041 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2042 s-interr.adb<libgnarl/s-interr__sigaction.adb \ 2043 s-intman.adb<libgnarl/s-intman__posix.adb \ 2044 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ 2045 s-osinte.adb<libgnarl/s-osinte__hpux-dce.adb \ 2046 s-osinte.ads<libgnarl/s-osinte__hpux-dce.ads \ 2047 s-parame.ads<libgnat/s-parame__hpux.ads \ 2048 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2049 s-taprop.adb<libgnarl/s-taprop__hpux-dce.adb \ 2050 s-taspri.ads<libgnarl/s-taspri__hpux-dce.ads \ 2051 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \ 2052 system.ads<libgnat/system-hpux.ads 2053 2054 EH_MECHANISM=-gcc 2055endif 2056 2057# HP/PA HP-UX 11 2058ifeq ($(strip $(filter-out hppa% hp hpux11%,$(target_cpu) $(target_vendor) $(target_os))),) 2059 LIBGNAT_TARGET_PAIRS = \ 2060 a-intnam.ads<libgnarl/a-intnam__hpux.ads \ 2061 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2062 s-intman.adb<libgnarl/s-intman__posix.adb \ 2063 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ 2064 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 2065 s-osinte.ads<libgnarl/s-osinte__hpux.ads \ 2066 s-parame.ads<libgnat/s-parame__hpux.ads \ 2067 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2068 s-traceb.adb<libgnat/s-traceb__hpux.adb \ 2069 s-taprop.adb<libgnarl/s-taprop__posix.adb \ 2070 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 2071 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ 2072 system.ads<libgnat/system-hpux.ads 2073 2074 EH_MECHANISM=-gcc 2075 TGT_LIB = /usr/lib/libcl.a 2076 THREADSLIB = -lpthread 2077 GMEM_LIB = gmemlib 2078 soext = .sl 2079 SO_OPTS = -Wl,+h, 2080 GNATLIB_SHARED = gnatlib-shared-dual 2081 LIBRARY_VERSION := $(LIB_VERSION) 2082endif 2083 2084# IBM AIX 2085ifeq ($(strip $(filter-out ibm aix%,$(target_vendor) $(target_os))),) 2086 LIBGNAT_TARGET_PAIRS = \ 2087 a-intnam.ads<libgnarl/a-intnam__aix.ads \ 2088 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2089 s-intman.adb<libgnarl/s-intman__posix.adb \ 2090 s-osinte.adb<libgnarl/s-osinte__aix.adb \ 2091 s-osinte.ads<libgnarl/s-osinte__aix.ads \ 2092 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2093 s-taprop.adb<libgnarl/s-taprop__posix.adb \ 2094 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 2095 s-tpopsp.adb<libgnarl/s-tpopsp__posix.adb \ 2096 $(TRASYM_DWARF_UNIX_PAIRS) \ 2097 $(ATOMICS_TARGET_PAIRS) \ 2098 $(ATOMICS_BUILTINS_TARGET_PAIRS) \ 2099 system.ads<libgnat/system-aix.ads 2100 2101 ifneq ($(target_os),) 2102 ifeq ($(findstring ppc64, \ 2103 $(shell $(GCC_FOR_TARGET) $(GNATLIBCFLAGS) \ 2104 -print-multi-os-directory)), \ 2105 ppc64) 2106 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-aix.adb 2107 else 2108 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 2109 endif 2110 endif 2111 2112 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS) 2113 2114 THREADSLIB = -lpthreads 2115 EH_MECHANISM=-gcc 2116 2117 GMEM_LIB = gmemlib 2118endif 2119 2120# LynxOS 178 and LynxOS 178 Elf 2121ifeq ($(strip $(filter-out lynxos178%,$(target_os))),) 2122 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 2123 2124 LIBGNAT_TARGET_PAIRS = \ 2125 a-intnam.ads<libgnarl/a-intnam__lynxos.ads \ 2126 a-nuaufl.ads<libgnat/a-nuaufl__wraplf.ads \ 2127 a-nashfl.ads<libgnat/a-nashfl__wraplf.ads \ 2128 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ 2129 g-soliop.ads<libgnat/g-soliop__lynxos.ads \ 2130 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2131 s-intman.adb<libgnarl/s-intman__lynxos.adb \ 2132 s-osinte.adb<libgnarl/s-osinte__lynxos178.adb \ 2133 s-osprim.ads<libgnat/s-osprim__lynxos.ads \ 2134 s-taprop.adb<libgnarl/s-taprop__posix.adb \ 2135 s-taspri.ads<libgnarl/s-taspri__lynxos.ads \ 2136 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb 2137 2138 ifeq ($(strip $(filter-out powerpc%, $(target_cpu))),) 2139 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-ppc.ads 2140 endif 2141 ifeq ($(strip $(filter-out %86, $(target_cpu))),) 2142 LIBGNAT_TARGET_PAIRS += system.ads<libgnat/system-lynxos178-x86.ads 2143 endif 2144 2145 ifeq ($(strip $(filter-out lynxos178e,$(target_os))),) 2146 LIBGNAT_TARGET_PAIRS += \ 2147 s-osinte.ads<libgnarl/s-osinte__lynxos178e.ads \ 2148 s-osprim.adb<libgnat/s-osprim__posix2008.adb \ 2149 s-tracon.adb<hie/s-tracon__ppc-eabi.adb 2150 endif 2151 2152 EH_MECHANISM=-gcc 2153endif 2154 2155# RTEMS 2156ifeq ($(strip $(filter-out rtems%,$(target_os))),) 2157 LIBGNAT_TARGET_PAIRS = \ 2158 system.ads<libgnat/system-rtems.ads \ 2159 a-intnam.ads<libgnarl/a-intnam__rtems.ads \ 2160 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2161 s-intman.adb<libgnarl/s-intman__posix.adb \ 2162 s-osinte.adb<libgnarl/s-osinte__rtems.adb \ 2163 s-osinte.ads<libgnarl/s-osinte__rtems.ads \ 2164 s-osprim.adb<libgnat/s-osprim__rtems.adb \ 2165 s-parame.adb<libgnat/s-parame__rtems.adb \ 2166 s-taprop.adb<libgnarl/s-taprop__posix.adb \ 2167 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 2168 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \ 2169 s-stchop.adb<libgnat/s-stchop__rtems.adb \ 2170 s-interr.adb<libgnarl/s-interr__hwint.adb 2171 2172 ifeq ($(strip $(filter-out arm%, $(target_cpu))),) 2173 EH_MECHANISM=-arm 2174 else 2175 EH_MECHANISM=-gcc 2176 endif 2177 2178 ifeq ($(strip $(filter-out riscv%,$(target_cpu))),) 2179 LIBGNAT_TARGET_PAIRS += a-nallfl.ads<libgnat/a-nallfl__wraplf.ads 2180 endif 2181endif 2182 2183# PikeOS 2184ifeq ($(strip $(filter-out powerpc% %86 sysgo pikeos,$(target_cpu) $(target_vendor) $(target_os)))),) 2185 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb 2186endif 2187 2188# *-elf, *-eabi, or *-eabispe 2189ifeq ($(strip $(filter-out elf eabi eabispe,$(target_os))),) 2190 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb 2191endif 2192 2193ifeq ($(strip $(filter-out %djgpp,$(target_os))),) 2194 GNATRTL_SOCKETS_OBJS = 2195 2196 LIBGNAT_TARGET_PAIRS = \ 2197 a-intnam.ads<libgnarl/a-intnam__dummy.ads \ 2198 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \ 2199 s-intman.adb<libgnarl/s-intman__dummy.adb \ 2200 s-osinte.ads<libgnarl/s-osinte__dummy.ads \ 2201 s-osprim.adb<libgnat/s-osprim__unix.adb \ 2202 s-taprop.adb<libgnarl/s-taprop__dummy.adb \ 2203 s-taspri.ads<libgnarl/s-taspri__dummy.ads \ 2204 system.ads<libgnat/system-djgpp.ads \ 2205 $(DUMMY_SOCKETS_TARGET_PAIRS) 2206 2207 EH_MECHANISM=-gcc 2208endif 2209 2210# Cygwin/Mingw32 2211ifeq ($(strip $(filter-out cygwin% mingw32% pe,$(target_os))),) 2212 # Cygwin provides a full Posix environment, and so we use the default 2213 # versions g-socthi rather than the Windows-specific MinGW version. 2214 # Ideally we would use all the default versions for Cygwin and none 2215 # of the MinGW versions, but for historical reasons the Cygwin port 2216 # has always been a CygMing frankenhybrid and it is a long-term project 2217 # to disentangle them. 2218 ifeq ($(strip $(filter-out cygwin%,$(target_os))),) 2219 LIBGNAT_TARGET_PAIRS = \ 2220 g-socthi.ads<libgnat/g-socthi.ads \ 2221 g-socthi.adb<libgnat/g-socthi.adb 2222 else 2223 LIBGNAT_TARGET_PAIRS = \ 2224 g-socthi.ads<libgnat/g-socthi__mingw.ads \ 2225 g-socthi.adb<libgnat/g-socthi__mingw.adb \ 2226 g-sopowa.adb<libgnat/g-sopowa__mingw.adb 2227 endif 2228 LIBGNAT_TARGET_PAIRS += \ 2229 a-dirval.adb<libgnat/a-dirval__mingw.adb \ 2230 s-gloloc.adb<libgnat/s-gloloc__mingw.adb \ 2231 s-inmaop.adb<libgnarl/s-inmaop__dummy.adb \ 2232 s-taspri.ads<libgnarl/s-taspri__mingw.ads \ 2233 s-tasinf.adb<libgnarl/s-tasinf__mingw.adb \ 2234 s-tasinf.ads<libgnarl/s-tasinf__mingw.ads \ 2235 g-stsifd.adb<libgnat/g-stsifd__sockets.adb \ 2236 g-soliop.ads<libgnat/g-soliop__mingw.ads \ 2237 $(ATOMICS_TARGET_PAIRS) \ 2238 system.ads<libgnat/system-mingw.ads 2239 2240 LIBGNAT_TARGET_PAIRS += \ 2241 a-exetim.adb<libgnarl/a-exetim__mingw.adb \ 2242 a-exetim.ads<libgnarl/a-exetim__mingw.ads \ 2243 a-intnam.ads<libgnarl/a-intnam__mingw.ads \ 2244 g-sercom.adb<libgnat/g-sercom__mingw.adb \ 2245 $(TRASYM_DWARF_MINGW_PAIRS) \ 2246 s-tsmona.adb<libgnat/s-tsmona__mingw.adb \ 2247 s-interr.adb<libgnarl/s-interr__sigaction.adb \ 2248 s-intman.adb<libgnarl/s-intman__mingw.adb \ 2249 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 2250 s-osinte.ads<libgnarl/s-osinte__mingw.ads \ 2251 s-osprim.adb<libgnat/s-osprim__mingw.adb \ 2252 s-taprop.adb<libgnarl/s-taprop__mingw.adb 2253 2254 ifeq ($(strip $(filter-out x86_64%,$(target_cpu))),) 2255 ifeq ($(strip $(MULTISUBDIR)),/32) 2256 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS) 2257 SO_OPTS= -m32 -Wl,-soname, 2258 else 2259 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS) $(GNATRTL_128BIT_PAIRS) 2260 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2261 SO_OPTS = -m64 -Wl,-soname, 2262 endif 2263 else 2264 ifeq ($(strip $(MULTISUBDIR)),/64) 2265 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS) $(GNATRTL_128BIT_PAIRS) 2266 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2267 SO_OPTS = -m64 -Wl,-soname, 2268 else 2269 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS) 2270 SO_OPTS = -m32 -Wl,-soname, 2271 endif 2272 endif 2273 2274 EXTRA_GNATRTL_NONTASKING_OBJS += \ 2275 s-win32.o s-winext.o g-regist.o g-sse.o g-ssvety.o 2276 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_MINGW_OBJS) 2277 EXTRA_GNATRTL_TASKING_OBJS = a-exetim.o 2278 EXTRA_LIBGNAT_SRCS+=mingw32.h 2279 MISCLIB = -lws2_32 2280 2281 # ??? This will be replaced by gnatlib-shared-dual-win32 when GNAT 2282 # auto-import support for array/record will be done. 2283 GNATLIB_SHARED = gnatlib-shared-win32 2284 2285 EH_MECHANISM=-gcc 2286 2287 TOOLS_TARGET_PAIRS=indepsw.adb<indepsw-gnu.adb 2288 2289 GMEM_LIB = gmemlib 2290 EXTRA_GNATTOOLS = ../../gnatdll$(exeext) 2291 EXTRA_GNATMAKE_OBJS = mdll.o mdll-utl.o mdll-fil.o 2292 soext = .dll 2293 LIBRARY_VERSION := $(LIB_VERSION) 2294endif 2295 2296# Mips Linux 2297ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),) 2298 LIBGNAT_TARGET_PAIRS = \ 2299 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 2300 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ 2301 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2302 s-intman.adb<libgnarl/s-intman__posix.adb \ 2303 s-linux.ads<libgnarl/s-linux__mips.ads \ 2304 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 2305 s-osinte.ads<libgnarl/s-osinte__linux.ads \ 2306 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2307 s-taprop.adb<libgnarl/s-taprop__linux.adb \ 2308 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \ 2309 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \ 2310 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \ 2311 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ 2312 system.ads<libgnat/system-linux-mips.ads 2313 2314 ifeq ($(strip $(filter-out mips64% mipsisa64%,$(target_cpu))),) 2315 ifneq ($(strip $(MULTISUBDIR)),/32) 2316 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 2317 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2318 endif 2319 else 2320 ifneq ($(strip $(filter /64 /n32,$(MULTISUBDIR))),) 2321 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 2322 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2323 endif 2324 endif 2325 2326 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 2327 2328 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o 2329 EH_MECHANISM=-gcc 2330 THREADSLIB = -lpthread 2331 GNATLIB_SHARED = gnatlib-shared-dual 2332 GMEM_LIB = gmemlib 2333 LIBRARY_VERSION := $(LIB_VERSION) 2334endif 2335 2336# PowerPC and e500v2 Linux 2337ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),) 2338 LIBGNAT_TARGET_PAIRS = \ 2339 a-exetim.adb<libgnarl/a-exetim__posix.adb \ 2340 a-exetim.ads<libgnarl/a-exetim__default.ads \ 2341 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 2342 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ 2343 a-synbar.adb<libgnarl/a-synbar__posix.adb \ 2344 a-synbar.ads<libgnarl/a-synbar__posix.ads \ 2345 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2346 s-intman.adb<libgnarl/s-intman__posix.adb \ 2347 s-linux.ads<libgnarl/s-linux.ads \ 2348 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 2349 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \ 2350 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 2351 s-osinte.ads<libgnarl/s-osinte__linux.ads \ 2352 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2353 s-taprop.adb<libgnarl/s-taprop__linux.adb \ 2354 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \ 2355 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \ 2356 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 2357 $(TRASYM_DWARF_UNIX_PAIRS) \ 2358 s-tsmona.adb<libgnat/s-tsmona__linux.adb \ 2359 $(ATOMICS_TARGET_PAIRS) \ 2360 $(ATOMICS_BUILTINS_TARGET_PAIRS) \ 2361 system.ads<libgnat/system-linux-ppc.ads 2362 2363 ifeq ($(strip $(filter-out powerpc64%,$(target_cpu))),) 2364 ifneq ($(strip $(MULTISUBDIR)),/32) 2365 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 2366 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2367 endif 2368 else 2369 ifeq ($(strip $(MULTISUBDIR)),/64) 2370 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 2371 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2372 endif 2373 endif 2374 2375 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 2376 2377 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS) 2378 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o 2379 2380 EH_MECHANISM=-gcc 2381 THREADSLIB = -lpthread -lrt 2382 GNATLIB_SHARED = gnatlib-shared-dual 2383 MISCLIB = -ldl 2384 GMEM_LIB = gmemlib 2385 LIBRARY_VERSION := $(LIB_VERSION) 2386endif 2387 2388# ARM linux, GNU eabi 2389ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),) 2390 LIBGNAT_TARGET_PAIRS = \ 2391 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 2392 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2393 s-intman.adb<libgnarl/s-intman__posix.adb \ 2394 s-linux.ads<libgnarl/s-linux.ads \ 2395 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 2396 s-osinte.ads<libgnarl/s-osinte__linux.ads \ 2397 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2398 s-taprop.adb<libgnarl/s-taprop__linux.adb \ 2399 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \ 2400 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \ 2401 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \ 2402 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ 2403 $(TRASYM_DWARF_UNIX_PAIRS) \ 2404 $(ATOMICS_TARGET_PAIRS) \ 2405 $(ATOMICS_BUILTINS_TARGET_PAIRS) \ 2406 system.ads<libgnat/system-linux-arm.ads 2407 2408 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 2409 2410 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS) 2411 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o 2412 EH_MECHANISM=-arm 2413 THREADSLIB = -lpthread 2414 GNATLIB_SHARED = gnatlib-shared-dual 2415 GMEM_LIB = gmemlib 2416 LIBRARY_VERSION := $(LIB_VERSION) 2417endif 2418 2419# AArch64 Linux 2420ifeq ($(strip $(filter-out aarch64% linux%,$(target_cpu) $(target_os))),) 2421 LIBGNAT_TARGET_PAIRS = \ 2422 a-exetim.adb<libgnarl/a-exetim__posix.adb \ 2423 a-exetim.ads<libgnarl/a-exetim__default.ads \ 2424 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 2425 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ 2426 a-synbar.adb<libgnarl/a-synbar__posix.adb \ 2427 a-synbar.ads<libgnarl/a-synbar__posix.ads \ 2428 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2429 s-intman.adb<libgnarl/s-intman__posix.adb \ 2430 s-linux.ads<libgnarl/s-linux.ads \ 2431 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 2432 s-osinte.ads<libgnarl/s-osinte__linux.ads \ 2433 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 2434 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2435 s-taprop.adb<libgnarl/s-taprop__linux.adb \ 2436 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \ 2437 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \ 2438 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \ 2439 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 2440 $(ATOMICS_TARGET_PAIRS) \ 2441 $(ATOMICS_BUILTINS_TARGET_PAIRS) \ 2442 $(GNATRTL_128BIT_PAIRS) \ 2443 system.ads<libgnat/system-linux-arm.ads 2444 2445 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 2446 2447 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS) 2448 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o 2449 EH_MECHANISM=-gcc 2450 THREADSLIB=-lpthread -lrt 2451 GNATLIB_SHARED=gnatlib-shared-dual 2452 GMEM_LIB = gmemlib 2453 LIBRARY_VERSION := $(LIB_VERSION) 2454endif 2455 2456# SPARC Linux 2457ifeq ($(strip $(filter-out sparc% linux%,$(target_cpu) $(target_os))),) 2458 LIBGNAT_TARGET_PAIRS = \ 2459 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 2460 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ 2461 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2462 s-intman.adb<libgnarl/s-intman__posix.adb \ 2463 s-linux.ads<libgnarl/s-linux__sparc.ads \ 2464 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 2465 s-osinte.ads<libgnarl/s-osinte__linux.ads \ 2466 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2467 s-taprop.adb<libgnarl/s-taprop__linux.adb \ 2468 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \ 2469 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \ 2470 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \ 2471 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \ 2472 system.ads<libgnat/system-linux-sparc.ads 2473 2474 ifeq ($(strip $(filter-out sparc64 sparcv9,$(target_cpu))),) 2475 ifneq ($(strip $(MULTISUBDIR)),/32) 2476 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 2477 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2478 endif 2479 else 2480 ifeq ($(strip $(MULTISUBDIR)),/64) 2481 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 2482 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2483 endif 2484 endif 2485 2486 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 2487 2488 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o 2489 EH_MECHANISM=-gcc 2490 THREADSLIB = -lpthread 2491 GNATLIB_SHARED = gnatlib-shared-dual 2492 GMEM_LIB = gmemlib 2493 LIBRARY_VERSION := $(LIB_VERSION) 2494endif 2495 2496# HP/PA Linux 2497ifeq ($(strip $(filter-out hppa% linux%,$(target_cpu) $(target_os))),) 2498 LIBGNAT_TARGET_PAIRS = \ 2499 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 2500 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2501 s-intman.adb<libgnarl/s-intman__posix.adb \ 2502 s-linux.ads<libgnarl/s-linux__hppa.ads \ 2503 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 2504 s-osinte.ads<libgnarl/s-osinte__linux.ads \ 2505 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2506 s-taprop.adb<libgnarl/s-taprop__linux.adb \ 2507 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \ 2508 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \ 2509 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \ 2510 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ 2511 system.ads<libgnat/system-linux-hppa.ads 2512 2513 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 2514 2515 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o 2516 EH_MECHANISM=-gcc 2517 THREADSLIB = -lpthread 2518 GNATLIB_SHARED = gnatlib-shared-dual 2519 GMEM_LIB = gmemlib 2520 LIBRARY_VERSION := $(LIB_VERSION) 2521endif 2522 2523# M68K Linux 2524ifeq ($(strip $(filter-out m68k% linux%,$(target_cpu) $(target_os))),) 2525 LIBGNAT_TARGET_PAIRS = \ 2526 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 2527 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2528 s-intman.adb<libgnarl/s-intman__posix.adb \ 2529 s-linux.ads<libgnarl/s-linux.ads \ 2530 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 2531 s-osinte.ads<libgnarl/s-osinte__linux.ads \ 2532 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2533 s-taprop.adb<libgnarl/s-taprop__linux.adb \ 2534 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \ 2535 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \ 2536 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 2537 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ 2538 system.ads<libgnat/system-linux-m68k.ads 2539 2540 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 2541 2542 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o 2543 EH_MECHANISM=-gcc 2544 THREADSLIB = -lpthread 2545 GNATLIB_SHARED = gnatlib-shared-dual 2546 GMEM_LIB = gmemlib 2547 LIBRARY_VERSION := $(LIB_VERSION) 2548endif 2549 2550# SH4 Linux 2551ifeq ($(strip $(filter-out sh4% linux%,$(target_cpu) $(target_os))),) 2552 LIBGNAT_TARGET_PAIRS = \ 2553 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 2554 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2555 s-intman.adb<libgnarl/s-intman__posix.adb \ 2556 s-linux.ads<libgnarl/s-linux.ads \ 2557 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 2558 s-osinte.ads<libgnarl/s-osinte__linux.ads \ 2559 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2560 s-taprop.adb<libgnarl/s-taprop__linux.adb \ 2561 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \ 2562 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \ 2563 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \ 2564 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ 2565 system.ads<libgnat/system-linux-sh4.ads 2566 2567 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-linux.adb 2568 2569 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o 2570 EH_MECHANISM=-gcc 2571 MISCLIB= 2572 THREADSLIB = -lpthread 2573 GNATLIB_SHARED = gnatlib-shared-dual 2574 GMEM_LIB = gmemlib 2575 LIBRARY_VERSION := $(LIB_VERSION) 2576endif 2577 2578# IA64 Linux 2579ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),) 2580 LIBGNAT_TARGET_PAIRS = \ 2581 a-exetim.adb<libgnarl/a-exetim__posix.adb \ 2582 a-exetim.ads<libgnarl/a-exetim__default.ads \ 2583 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 2584 a-nuauco.ads<libgnat/a-nuauco__x86.ads \ 2585 a-synbar.adb<libgnarl/a-synbar__posix.adb \ 2586 a-synbar.ads<libgnarl/a-synbar__posix.ads \ 2587 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2588 s-intman.adb<libgnarl/s-intman__posix.adb \ 2589 s-linux.ads<libgnarl/s-linux.ads \ 2590 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 2591 s-osinte.ads<libgnarl/s-osinte__linux.ads \ 2592 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 2593 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2594 s-taprop.adb<libgnarl/s-taprop__linux.adb \ 2595 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \ 2596 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \ 2597 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \ 2598 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \ 2599 $(TRASYM_DWARF_UNIX_PAIRS) \ 2600 s-tsmona.adb<libgnat/s-tsmona__linux.adb \ 2601 $(ATOMICS_TARGET_PAIRS) \ 2602 $(ATOMICS_BUILTINS_TARGET_PAIRS) \ 2603 $(GNATRTL_128BIT_PAIRS) \ 2604 system.ads<libgnat/system-linux-ia64.ads 2605 2606 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 2607 2608 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS) 2609 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2610 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o 2611 EH_MECHANISM=-gcc 2612 THREADSLIB=-lpthread -lrt 2613 GNATLIB_SHARED=gnatlib-shared-dual 2614 MISCLIB = -ldl 2615 GMEM_LIB = gmemlib 2616 LIBRARY_VERSION := $(LIB_VERSION) 2617endif 2618 2619# IA64 HP-UX 2620ifeq ($(strip $(filter-out ia64% hp hpux%,$(target_cpu) $(target_vendor) $(target_os))),) 2621 LIBGNAT_TARGET_PAIRS = \ 2622 a-intnam.ads<libgnarl/a-intnam__hpux.ads \ 2623 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2624 s-intman.adb<libgnarl/s-intman__posix.adb \ 2625 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 2626 s-osinte.ads<libgnarl/s-osinte__hpux.ads \ 2627 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2628 s-taprop.adb<libgnarl/s-taprop__posix.adb \ 2629 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 2630 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ 2631 $(TRASYM_DWARF_UNIX_PAIRS) \ 2632 $(ATOMICS_TARGET_PAIRS) \ 2633 $(ATOMICS_BUILTINS_TARGET_PAIRS) \ 2634 $(GNATRTL_128BIT_PAIRS) \ 2635 system.ads<libgnat/system-hpux-ia64.ads 2636 2637 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS) 2638 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2639 2640 MISCLIB= 2641 EH_MECHANISM=-gcc 2642 THREADSLIB=-lpthread 2643 GNATLIB_SHARED=gnatlib-shared-dual 2644 GMEM_LIB = gmemlib 2645 soext = .so 2646 SO_OPTS = -Wl,+h, 2647 LIBRARY_VERSION := $(LIB_VERSION) 2648endif 2649 2650# Alpha Linux 2651ifeq ($(strip $(filter-out alpha% linux%,$(target_cpu) $(target_os))),) 2652 LIBGNAT_TARGET_PAIRS = \ 2653 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 2654 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2655 s-intman.adb<libgnarl/s-intman__posix.adb \ 2656 s-linux.ads<libgnarl/s-linux__alpha.ads \ 2657 s-osinte.ads<libgnarl/s-osinte__linux.ads \ 2658 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 2659 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2660 s-taprop.adb<libgnarl/s-taprop__linux.adb \ 2661 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \ 2662 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \ 2663 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ 2664 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \ 2665 $(ATOMICS_TARGET_PAIRS) \ 2666 $(ATOMICS_BUILTINS_TARGET_PAIRS) \ 2667 $(GNATRTL_128BIT_PAIRS) \ 2668 system.ads<libgnat/system-linux-alpha.ads 2669 2670 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 2671 2672 EXTRA_GNATRTL_NONTASKING_OBJS = $(GNATRTL_128BIT_OBJS) 2673 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o 2674 EH_MECHANISM=-gcc 2675 MISCLIB= 2676 THREADSLIB=-lpthread 2677 GNATLIB_SHARED=gnatlib-shared-dual 2678 LIBRARY_VERSION := $(LIB_VERSION) 2679endif 2680 2681# x86-64 Linux 2682ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),) 2683 LIBGNAT_TARGET_PAIRS = \ 2684 a-exetim.adb<libgnarl/a-exetim__posix.adb \ 2685 a-exetim.ads<libgnarl/a-exetim__default.ads \ 2686 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 2687 a-synbar.adb<libgnarl/a-synbar__posix.adb \ 2688 a-synbar.ads<libgnarl/a-synbar__posix.ads \ 2689 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2690 s-intman.adb<libgnarl/s-intman__posix.adb \ 2691 s-linux.ads<libgnarl/s-linux.ads \ 2692 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 2693 s-osinte.ads<libgnarl/s-osinte__linux.ads \ 2694 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 2695 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2696 s-taprop.adb<libgnarl/s-taprop__linux.adb \ 2697 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \ 2698 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \ 2699 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \ 2700 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 2701 $(TRASYM_DWARF_UNIX_PAIRS) \ 2702 s-tsmona.adb<libgnat/s-tsmona__linux.adb \ 2703 $(ATOMICS_TARGET_PAIRS) \ 2704 $(X86_64_TARGET_PAIRS) \ 2705 $(GNATRTL_128BIT_PAIRS) \ 2706 system.ads<libgnat/system-linux-x86.ads 2707 2708 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 2709 2710 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o 2711 EXTRA_GNATRTL_NONTASKING_OBJS += $(TRASYM_DWARF_UNIX_OBJS) 2712 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2713 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o 2714 2715 EH_MECHANISM=-gcc 2716 THREADSLIB=-lpthread -lrt 2717 MISCLIB = -ldl 2718 GNATLIB_SHARED=gnatlib-shared-dual 2719 GMEM_LIB = gmemlib 2720 LIBRARY_VERSION := $(LIB_VERSION) 2721 2722 GNATLIBCFLAGS_FOR_GCCSJLJ+=-fno-omit-frame-pointer -momit-leaf-frame-pointer 2723endif 2724 2725ifeq ($(strip $(filter-out %x32 linux%,$(target_cpu) $(target_os))),) 2726 LIBGNAT_TARGET_PAIRS = \ 2727 a-exetim.adb<libgnarl/a-exetim__posix.adb \ 2728 a-exetim.ads<libgnarl/a-exetim__default.ads \ 2729 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 2730 a-synbar.adb<libgnarl/a-synbar__posix.adb \ 2731 a-synbar.ads<libgnarl/a-synbar__posix.ads \ 2732 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2733 s-intman.adb<libgnarl/s-intman__posix.adb \ 2734 s-linux.ads<libgnarl/s-linux__x32.ads \ 2735 s-mudido.adb<libgnarl/s-mudido__affinity.adb \ 2736 s-osinte.ads<libgnarl/s-osinte__linux.ads \ 2737 s-osinte.adb<libgnarl/s-osinte__x32.adb \ 2738 s-osprim.adb<libgnat/s-osprim__x32.adb \ 2739 s-taprop.adb<libgnarl/s-taprop__linux.adb \ 2740 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \ 2741 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \ 2742 s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \ 2743 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 2744 $(ATOMICS_TARGET_PAIRS) \ 2745 $(X86_64_TARGET_PAIRS) \ 2746 system.ads<libgnat/system-linux-x86.ads 2747 2748 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 2749 2750 EXTRA_GNATRTL_NONTASKING_OBJS=g-sse.o g-ssvety.o 2751 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o a-exetim.o 2752 EH_MECHANISM=-gcc 2753 THREADSLIB=-lpthread -lrt 2754 GNATLIB_SHARED=gnatlib-shared-dual 2755 GMEM_LIB = gmemlib 2756 LIBRARY_VERSION := $(LIB_VERSION) 2757endif 2758 2759# RISC-V Linux 2760ifeq ($(strip $(filter-out riscv% linux%,$(target_cpu) $(target_os))),) 2761 LIBGNAT_TARGET_PAIRS = \ 2762 a-intnam.ads<libgnarl/a-intnam__linux.ads \ 2763 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ 2764 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2765 s-intman.adb<libgnarl/s-intman__posix.adb \ 2766 s-linux.ads<libgnarl/s-linux__riscv.ads \ 2767 s-osinte.adb<libgnarl/s-osinte__posix.adb \ 2768 s-osinte.ads<libgnarl/s-osinte__linux.ads \ 2769 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2770 s-taprop.adb<libgnarl/s-taprop__linux.adb \ 2771 s-tasinf.ads<libgnarl/s-tasinf__linux.ads \ 2772 s-tasinf.adb<libgnarl/s-tasinf__linux.adb \ 2773 s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \ 2774 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ 2775 system.ads<libgnat/system-linux-riscv.ads 2776 2777 ifeq ($(strip $(filter-out riscv64,$(target_cpu))),) 2778 ifneq ($(strip $(MULTISUBDIR)),/lib32) 2779 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 2780 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2781 endif 2782 else 2783 ifeq ($(strip $(MULTISUBDIR)),/lib64) 2784 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 2785 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2786 endif 2787 endif 2788 2789 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb 2790 2791 EXTRA_GNATRTL_TASKING_OBJS=s-linux.o 2792 EH_MECHANISM=-gcc 2793 THREADSLIB = -lpthread 2794 GNATLIB_SHARED = gnatlib-shared-dual 2795 GMEM_LIB = gmemlib 2796 LIBRARY_VERSION := $(LIB_VERSION) 2797endif 2798 2799# Darwin (Mac OS X) 2800ifeq ($(strip $(filter-out darwin%,$(target_os))),) 2801 SO_OPTS = -shared-libgcc 2802 LIBGNAT_TARGET_PAIRS = \ 2803 a-intnam.ads<libgnarl/a-intnam__darwin.ads \ 2804 s-inmaop.adb<libgnarl/s-inmaop__posix.adb \ 2805 s-osinte.adb<libgnarl/s-osinte__darwin.adb \ 2806 s-osinte.ads<libgnarl/s-osinte__darwin.ads \ 2807 s-taprop.adb<libgnarl/s-taprop__posix.adb \ 2808 s-taspri.ads<libgnarl/s-taspri__posix.ads \ 2809 g-sercom.adb<libgnat/g-sercom__linux.adb \ 2810 s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb 2811 2812 ifeq ($(strip $(filter-out %86,$(target_cpu))),) 2813 LIBGNAT_TARGET_PAIRS += \ 2814 s-intman.adb<libgnarl/s-intman__susv3.adb \ 2815 s-osprim.adb<libgnat/s-osprim__darwin.adb \ 2816 $(ATOMICS_TARGET_PAIRS) \ 2817 system.ads<libgnat/system-darwin-x86.ads 2818 2819 ifeq ($(strip $(MULTISUBDIR)),/x86_64) 2820 SO_OPTS += -m64 2821 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS) 2822 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 2823 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2824 else 2825 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS) 2826 endif 2827 2828 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o 2829 endif 2830 2831 ifeq ($(strip $(filter-out %x86_64,$(target_cpu))),) 2832 LIBGNAT_TARGET_PAIRS += \ 2833 s-intman.adb<libgnarl/s-intman__susv3.adb \ 2834 s-osprim.adb<libgnat/s-osprim__darwin.adb \ 2835 a-exetim.ads<libgnarl/a-exetim__default.ads \ 2836 a-exetim.adb<libgnarl/a-exetim__darwin.adb \ 2837 $(ATOMICS_TARGET_PAIRS) \ 2838 system.ads<libgnat/system-darwin-x86.ads 2839 2840 ifeq ($(strip $(MULTISUBDIR)),/i386) 2841 SO_OPTS += -m32 2842 LIBGNAT_TARGET_PAIRS += $(X86_TARGET_PAIRS) 2843 else 2844 LIBGNAT_TARGET_PAIRS += $(X86_64_TARGET_PAIRS) 2845 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 2846 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2847 endif 2848 2849 EXTRA_GNATRTL_NONTASKING_OBJS += g-sse.o g-ssvety.o 2850 EXTRA_GNATRTL_TASKING_OBJS=a-exetim.o 2851 endif 2852 2853 ifeq ($(strip $(filter-out powerpc%,$(target_cpu))),) 2854 LIBGNAT_TARGET_PAIRS += \ 2855 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ 2856 s-intman.adb<libgnarl/s-intman__posix.adb \ 2857 s-osprim.adb<libgnat/s-osprim__posix.adb \ 2858 $(ATOMICS_TARGET_PAIRS) \ 2859 $(ATOMICS_BUILTINS_TARGET_PAIRS) \ 2860 system.ads<libgnat/system-darwin-ppc.ads 2861 2862 ifeq ($(strip $(filter-out powerpc64,$(target_cpu))),) 2863 ifneq ($(strip $(MULTISUBDIR)),/ppc) 2864 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 2865 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2866 else 2867 SO_OPTS += -m32 2868 endif 2869 else 2870 ifeq ($(strip $(MULTISUBDIR)),/ppc64) 2871 SO_OPTS += -m64 2872 LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) 2873 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2874 endif 2875 endif 2876 endif 2877 2878 ifeq ($(strip $(filter-out arm,$(target_cpu))),) 2879 LIBGNAT_TARGET_PAIRS += \ 2880 s-intman.adb<libgnarl/s-intman__susv3.adb \ 2881 s-osprim.adb<libgnat/s-osprim__darwin.adb \ 2882 $(ATOMICS_TARGET_PAIRS) \ 2883 $(ATOMICS_BUILTINS_TARGET_PAIRS) 2884 2885 LIBGNAT_TARGET_PAIRS += \ 2886 system.ads<libgnat/system-darwin-arm.ads 2887 endif 2888 2889 ifeq ($(strip $(filter-out arm64 aarch64,$(target_cpu))),) 2890 LIBGNAT_TARGET_PAIRS += \ 2891 a-nallfl.ads<libgnat/a-nallfl__wraplf.ads \ 2892 s-intman.adb<libgnarl/s-intman__susv3.adb \ 2893 s-osprim.adb<libgnat/s-osprim__darwin.adb \ 2894 $(ATOMICS_TARGET_PAIRS) \ 2895 $(ATOMICS_BUILTINS_TARGET_PAIRS) \ 2896 $(GNATRTL_128BIT_PAIRS) 2897 2898 EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) 2899 EXTRA_LIBGNAT_OBJS+=sigtramp-ios.o 2900 EXTRA_LIBGNAT_SRCS+=sigtramp.h 2901 LIBGNAT_TARGET_PAIRS += \ 2902 system.ads<libgnat/system-darwin-arm.ads 2903 endif 2904 2905 TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-darwin.adb 2906 2907 EH_MECHANISM=-gcc 2908 GNATLIB_SHARED = gnatlib-shared-darwin 2909 GMEM_LIB = gmemlib 2910 LIBRARY_VERSION := $(LIB_VERSION) 2911 soext = .dylib 2912 GCC_LINK_FLAGS=-static-libstdc++ 2913endif 2914 2915ifeq ($(EH_MECHANISM),-gcc) 2916 LIBGNAT_TARGET_PAIRS += \ 2917 s-excmac.ads<libgnat/s-excmac__gcc.ads \ 2918 s-excmac.adb<libgnat/s-excmac__gcc.adb 2919 EXTRA_LIBGNAT_OBJS+=raise-gcc.o 2920 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o 2921endif 2922 2923ifeq ($(EH_MECHANISM),-arm) 2924 LIBGNAT_TARGET_PAIRS += \ 2925 s-excmac.ads<libgnat/s-excmac__arm.ads \ 2926 s-excmac.adb<libgnat/s-excmac__arm.adb 2927 EXTRA_LIBGNAT_OBJS+=raise-gcc.o 2928 EXTRA_GNATRTL_NONTASKING_OBJS+=g-cppexc.o s-excmac.o 2929endif 2930 2931ifeq ($(strip $(filter-out linux%,$(target_os))),) 2932 LIBGNAT_TARGET_PAIRS += \ 2933 g-sercom.adb<libgnat/g-sercom__linux.adb 2934endif 2935 2936LIBGNAT_TARGET_PAIRS += \ 2937 interfac.ads<libgnat/interfac__2020.ads 2938 2939# LIBGNAT_SRCS is the list of all C files (including headers) of the runtime 2940# library. LIBGNAT_OBJS is the list of object files for libgnat. 2941# thread.c is special as put into GNATRTL_TASKING_OBJS 2942LIBGNAT_OBJS = adadecode.o adaint.o argv.o aux-io.o \ 2943 cal.o cio.o cstreams.o ctrl_c.o \ 2944 env.o errno.o exit.o expect.o final.o rtfinal.o rtinit.o \ 2945 init.o initialize.o locales.o mkdir.o \ 2946 raise.o seh_init.o socket.o sysdep.o \ 2947 targext.o terminals.o tracebak.o \ 2948 $(EXTRA_LIBGNAT_OBJS) 2949 2950# NOTE ??? - when the -I option for compiling Ada code is made to work, 2951# the library installation will change and there will be a 2952# GNAT_RTL_SRCS. Right now we count on being able to build GNATRTL_OBJS 2953# from ADA_INCLUDE_SRCS. 2954 2955LIBGNAT_SRCS = $(patsubst %.o,%.c,$(LIBGNAT_OBJS)) \ 2956 adadecode.h adaint.h env.h gsocket.h raise.h standard.ads.h \ 2957 runtime.h $(EXTRA_LIBGNAT_SRCS) 2958 2959# memtrack.o is special as not put into libgnat. 2960GNATRTL_OBJS = $(GNATRTL_NONTASKING_OBJS) $(GNATRTL_TASKING_OBJS) \ 2961 memtrack.o 2962 2963# Run time source files 2964# Note that libgnat contains a significant number of files. In orde to avoid 2965# command line length limitations the source regexp has been split for that 2966# directory. 2967ADA_INCLUDE_SRCS =\ 2968 libgnat/ada.ads libgnat/calendar.ads libgnat/directio.ads libgnat/gnat.ads libgnat/interfac.ads libgnat/ioexcept.ads \ 2969 libgnat/machcode.ads libgnat/text_io.ads libgnat/unchconv.ads libgnat/unchdeal.ads \ 2970 libgnat/sequenio.ads libgnat/system.ads libgnat/memtrack.adb \ 2971 libgna*/*.gpr \ 2972 libgnat/a-[a-o]*.adb libgnat/a-[a-o]*.ads \ 2973 libgnat/a-[p-z]*.adb libgnat/a-[p-z]*.ads \ 2974 libgnat/g-[a-o]*.adb libgnat/g-[a-o]*.ads \ 2975 libgnat/g-[p-z]*.adb libgnat/g-[p-z]*.ads \ 2976 libgnat/s-[a-o]*.adb libgnat/s-[a-o]*.ads \ 2977 libgnat/s-[p-z]*.adb libgnat/s-[p-z]*.ads \ 2978 libgnat/i-[a-o]*.adb libgnat/i-[a-o]*.ads \ 2979 libgnat/i-[p-z]*.adb libgnat/i-[p-z]*.ads \ 2980 libgnarl/[agis]-[a-z]*.ad[sb] 2981 2982 2983# Files that are in ADA_INCLUDE_SRCS but not in all configurations. 2984# They will be removed from the run time if not used. 2985ADA_EXCLUDE_SRCS =\ 2986 g-allein.ads g-alleve.adb g-alleve.ads g-altcon.adb g-altcon.ads \ 2987 g-altive.ads g-alveop.adb g-alveop.ads g-alvety.ads g-alvevi.ads \ 2988 g-intpri.ads g-regist.adb g-regist.ads g-sse.ads g-ssvety.ads \ 2989 i-vxinco.adb i-vxinco.ads i-vxwoio.adb i-vxwoio.ads i-vxwork.ads \ 2990 s-bb.ads s-bbbosu.ads s-bbcaco.ads s-bbcppr.ads s-bbexti.adb \ 2991 s-bbexti.ads s-bbinte.adb s-bbinte.ads s-bbprot.adb s-bbprot.ads \ 2992 s-bbsle3.ads s-bbsuer.ads s-bbsule.ads s-bbthqu.adb s-bbthqu.ads \ 2993 s-bbthre.adb s-bbthre.ads s-bbtiev.adb s-bbtiev.ads s-bbtime.adb \ 2994 s-bbtime.ads s-bcprmu.adb s-bcprmu.ads s-btstch.adb s-btstch.ads \ 2995 s-gcc.adb s-gcc.ads s-gccdiv.adb s-gccdiv.ads \ 2996 s-gccshi.adb s-gccshi.ads \ 2997 s-init.ads s-init.adb s-linux.ads s-macres.ads \ 2998 s-memcom.adb s-memcom.ads s-memmov.adb s-memmov.ads s-memset.adb \ 2999 s-memset.ads s-mufalo.adb s-mufalo.ads s-musplo.adb s-musplo.ads \ 3000 s-sam4.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb s-sopco4.ads \ 3001 s-sopco5.adb s-sopco5.ads s-stchop.ads s-stchop.adb s-stm32.ads \ 3002 s-strcom.adb s-strcom.ads s-thread.ads \ 3003 s-vxwext.adb s-vxwext.ads \ 3004 s-win32.ads s-winext.ads 3005 3006# ADA_EXCLUDE_SRCS without the sources used by the target 3007ADA_EXCLUDE_FILES=$(filter-out \ 3008 $(patsubst %$(objext),%.ads,$(GNATRTL_OBJS)) \ 3009 $(patsubst %$(objext),%.adb,$(GNATRTL_OBJS)), \ 3010 $(ADA_EXCLUDE_SRCS)) 3011 3012setup-rts: force 3013 $(RMDIR) $(RTSDIR) 3014 $(MKDIR) $(RTSDIR) 3015 $(CHMOD) u+w $(RTSDIR) 3016# Copy target independent sources 3017 $(foreach f,$(ADA_INCLUDE_SRCS) $(LIBGNAT_SRCS) libgnarl/thread.c, \ 3018 $(LN_S) $(GNAT_SRC)/$(f) $(RTSDIR) ;) true 3019# Remove files not used 3020 $(RM) $(patsubst %,$(RTSDIR)/%,$(ADA_EXCLUDE_FILES)) 3021# Remove files to be replaced by target dependent sources 3022 $(RM) $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \ 3023 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR)))) 3024 for f in $(RTSDIR)/*-*__*.ads $(RTSDIR)/*-*__*.adb; do \ 3025 $(RM) $$f ; \ 3026 done 3027# Copy new target dependent sources 3028 $(foreach PAIR,$(LIBGNAT_TARGET_PAIRS), \ 3029 $(LN_S) $(GNAT_SRC)/$(word 2,$(subst <, ,$(PAIR))) \ 3030 $(RTSDIR)/$(word 1,$(subst <, ,$(PAIR)));) 3031# And finally generate libgnat.lst and libgnarl.lst 3032 @for f in \ 3033 $(foreach F,$(GNATRTL_TASKING_OBJS),$(subst $(objext),.ads,$(F))) \ 3034 $(foreach F,$(GNATRTL_TASKING_OBJS),$(subst $(objext),.adb,$(F))); \ 3035 do \ 3036 if [ -f $(RTSDIR)/$$f ]; then echo $$f >> $(RTSDIR)/libgnarl.lst; fi \ 3037 done 3038 @echo thread.c >> $(RTSDIR)/libgnarl.lst 3039 @for f in \ 3040 $(foreach F,$(GNATRTL_NONTASKING_OBJS),$(subst $(objext),.ads,$(F))) \ 3041 $(foreach F,$(GNATRTL_NONTASKING_OBJS),$(subst $(objext),.adb,$(F))); \ 3042 do \ 3043 if [ -f $(RTSDIR)/$$f ]; then echo $$f >> $(RTSDIR)/libgnat.lst; fi \ 3044 done 3045# s-oscons.ads is generated later, so hardcode it here 3046 @echo s-oscons.ads >> $(RTSDIR)/libgnat.lst 3047 @for f in $(LIBGNAT_SRCS); do \ 3048 echo $$f >> $(RTSDIR)/libgnat.lst; \ 3049 done 3050 3051# Special flags. It is recommended not to change the compilation flags 3052# without a careful analysis of the consequences because (part of) the 3053# runtime implements low-level support that is outside of the semantics 3054# of the language and therefore needs to be treated differently from the 3055# other units. For example, the part of the runtime implementing the 3056# propagation of exceptions cannot itself be compiled with checks that 3057# may give rise to exceptions, e.g. stack overflow checks. 3058 3059# Generate target-dependent info into a file named ada_target_properties. 3060# This information is used by tools for static analysis: they need to know 3061# the size of standard types for a given run-time library. This metadata 3062# is meant to be saved at the root of the run-time directory. 3063 3064ADA_TARGET_PROPERTIES = -gnatet=ada_target_properties 3065 3066system.o : system.ads 3067 $(ADAC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< \ 3068 $(ADA_TARGET_PROPERTIES) \ 3069 $(OUTPUT_OPTION) 3070 3071# Force no sibling call optimization on s-traceb.o so the number of stack 3072# frames to be skipped when computing a call chain is not modified by 3073# optimization. We don't want inlining, either. 3074 3075s-traceb.o : s-traceb.adb s-traceb.ads 3076 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) \ 3077 $(NO_INLINE_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) $< \ 3078 $(OUTPUT_OPTION) 3079 3080# Compile s-tasdeb.o without optimization and with debug info so that it is 3081# always possible to set conditional breakpoints on tasks. 3082 3083s-tasdeb.o : s-tasdeb.adb s-tasdeb.ads 3084 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 $(ADA_INCLUDES) \ 3085 $< $(OUTPUT_OPTION) 3086 3087# Force no function reordering on a-except.o because of the exclusion bounds 3088# mechanism (see the source file for more detailed information). 3089# force debugging information on a-except.o so that it is always 3090# possible to set conditional breakpoints on exceptions. 3091# use -O1 otherwise gdb isn't able to get a full backtrace on mips targets. 3092 3093a-except.o : a-except.adb a-except.ads 3094 $(ADAC) -c $(ALL_ADAFLAGS) -O1 $(FORCE_DEBUG_ADAFLAGS) \ 3095 $(NO_INLINE_ADAFLAGS) $(NO_REORDER_ADAFLAGS) $(ADA_INCLUDES) \ 3096 $< $(OUTPUT_OPTION) 3097 3098# Compile s-excdeb.o without optimization and with debug info to let the 3099# debugger set breakpoints and inspect subprogram parameters on exception 3100# related events. 3101 3102s-excdeb.o : s-excdeb.adb s-excdeb.ads s-except.ads 3103 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) -O0 \ 3104 $(ADA_INCLUDES) $< $(OUTPUT_OPTION) 3105 3106# Force debugging information on s-assert.o so that it is always 3107# possible to set breakpoint on assert failures. 3108 3109s-assert.o : s-assert.adb s-assert.ads 3110 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \ 3111 $< $(OUTPUT_OPTION) 3112 3113# Force debugging information on a-tags.o so that the debugger can find 3114# the description of Ada.Tags.Type_Specific_Data. 3115 3116a-tags.o : a-tags.adb a-tags.ads 3117 $(ADAC) -c $(ALL_ADAFLAGS) $(FORCE_DEBUG_ADAFLAGS) $(ADA_INCLUDES) \ 3118 $< $(OUTPUT_OPTION) 3119 3120# Force no sibling call optimization on s-memory.o to avoid turning the 3121# tail recursion in Alloc into a loop that confuses branch prediction. 3122 3123s-memory.o : s-memory.adb s-memory.ads 3124 $(ADAC) -c $(ALL_ADAFLAGS) $(NO_SIBLING_ADAFLAGS) $(ADA_INCLUDES) \ 3125 $< $(OUTPUT_OPTION) 3126 3127# Need to keep functions ordered on g-debpoo.o since labels are used to 3128# exclude subprograms from traceback computation. 3129 3130g-debpoo.o: g-debpoo.adb g-debpoo.ads 3131 $(ADAC) -c $(ALL_ADAFLAGS) $(NO_REORDER_ADAFLAGS) $(ADA_INCLUDES) \ 3132 $< $(OUTPUT_OPTION) 3133