xref: /netbsd-src/external/gpl3/binutils/dist/ld/emulparams/x86-64-lam.sh (revision 06dfa8449cb5e76c0044ec0f3badf7d5180af0f5)
1PARSE_AND_LIST_OPTIONS_LAM='
2  fprintf (file, _("\
3  -z lam-u48                  Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U48\n"));
4  fprintf (file, _("\
5  -z lam-u48-report=[none|warning|error] (default: none)\n\
6                              Report missing LAM_U48 property\n"));
7  fprintf (file, _("\
8  -z lam-u57                  Generate GNU_PROPERTY_X86_FEATURE_1_LAM_U57\n"));
9  fprintf (file, _("\
10  -z lam-u57-report=[none|warning|error] (default: none)\n\
11                              Report missing LAM_U57 property\n"));
12  fprintf (file, _("\
13  -z lam-report=[none|warning|error] (default: none)\n\
14                              Report missing LAM_U48 and LAM_U57 properties\n"));
15'
16PARSE_AND_LIST_ARGS_CASE_Z_LAM='
17      else if (strcmp (optarg, "lam-u48") == 0)
18	params.lam_u48 = true;
19      else if (strncmp (optarg, "lam-u48-report=", 15) == 0)
20	{
21	  if (strcmp (optarg + 15, "none") == 0)
22	    params.lam_u48_report = prop_report_none;
23	  else if (strcmp (optarg + 15, "warning") == 0)
24	    params.lam_u48_report = prop_report_warning;
25	  else if (strcmp (optarg + 15, "error") == 0)
26	    params.lam_u48_report = prop_report_error;
27	  else
28	    einfo (_("%F%P: invalid option for -z lam-u48-report=: %s\n"),
29		   optarg + 15);
30	}
31      else if (strcmp (optarg, "lam-u57") == 0)
32	params.lam_u57 = true;
33      else if (strncmp (optarg, "lam-u57-report=", 15) == 0)
34	{
35	  if (strcmp (optarg + 15, "none") == 0)
36	    params.lam_u57_report = prop_report_none;
37	  else if (strcmp (optarg + 15, "warning") == 0)
38	    params.lam_u57_report = prop_report_warning;
39	  else if (strcmp (optarg + 15, "error") == 0)
40	    params.lam_u57_report = prop_report_error;
41	  else
42	    einfo (_("%F%P: invalid option for -z lam-u57-report=: %s\n"),
43		   optarg + 15);
44	}
45      else if (strncmp (optarg, "lam-report=", 11) == 0)
46	{
47	  if (strcmp (optarg + 11, "none") == 0)
48	    {
49	      params.lam_u48_report = prop_report_none;
50	      params.lam_u57_report = prop_report_none;
51	    }
52	  else if (strcmp (optarg + 11, "warning") == 0)
53	    {
54	      params.lam_u48_report = prop_report_warning;
55	      params.lam_u57_report = prop_report_warning;
56	    }
57	  else if (strcmp (optarg + 11, "error") == 0)
58	    {
59	      params.lam_u48_report = prop_report_error;
60	      params.lam_u57_report = prop_report_error;
61	    }
62	  else
63	    einfo (_("%F%P: invalid option for -z lam-report=: %s\n"),
64		   optarg + 11);
65	}
66'
67
68PARSE_AND_LIST_OPTIONS="$PARSE_AND_LIST_OPTIONS $PARSE_AND_LIST_OPTIONS_LAM"
69PARSE_AND_LIST_ARGS_CASE_Z="$PARSE_AND_LIST_ARGS_CASE_Z $PARSE_AND_LIST_ARGS_CASE_Z_LAM"
70