{
    "content": [
        {
            "type": "text",
            "text": "# OPENSSL_API_COMPAT(7ssl) (man)\n\n**Summary:** opensslusermacros, OPENSSLAPICOMPAT, OPENSSLNODEPRECATED - User defined macros\n\n## Section Outline\n\n- **NAME** (2 lines)\n- **DESCRIPTION** (9 lines) — 1 subsections\n  - The macros (38 lines)\n- **COPYRIGHT** (9 lines)\n\n## Full Content\n\n### NAME\n\nopensslusermacros, OPENSSLAPICOMPAT, OPENSSLNODEPRECATED - User defined macros\n\n### DESCRIPTION\n\nUser defined macros allow the programmer to control certain aspects of what is exposed by the\nOpenSSL headers.\n\nNOTE: to be effective, a user defined macro must be defined before including any header file\nthat depends on it, either in the compilation command (\"cc -DMACRO=value\") or by defining the\nmacro in source before including any headers.\n\nOther manual pages may refer to this page when declarations depend on user defined macros.\n\n#### The macros\n\nOPENSSLAPICOMPAT\nThe value is a version number, given in one of the following two forms:\n\n\"0xMNNFF000L\"\nThis is the form supported for all versions up to 1.1.x, where \"M\" represents the\nmajor number, \"NN\" represents the minor number, and \"FF\" represents the fix number,\nas a hexadecimal number.  For version 1.1.0, that's \"0x10100000L\".\n\nAny version number may be given, but these numbers are the current known major\ndeprecation points, making them the most meaningful:\n\n\"0x00908000L\" (version 0.9.8)\n\"0x10000000L\" (version 1.0.0)\n\"0x10100000L\" (version 1.1.0)\n\nFor convenience, higher numbers are accepted as well, as long as feasible.  For\nexample, \"0x60000000L\" will work as expected.  However, it is recommended to start\nusing the second form instead:\n\n\"mmnnpp\"\nThis form is a simple decimal number calculated with this formula:\n\nmajor * 10000 + minor * 100 + patch\n\nwhere major, minor and patch are the desired major, minor and patch components of the\nversion number.  For example:\n\n30000 corresponds to version 3.0.0\n10002 corresponds to version 1.0.2\n420101 corresponds to version 42.1.1\n\nIf OPENSSLAPICOMPAT is undefined, this default value is used in its place: 30000\n\nOPENSSLNODEPRECATED\nIf this macro is defined, all deprecated public symbols in all OpenSSL versions up to and\nincluding the version given by OPENSSLAPICOMPAT (or the default value given above, when\nOPENSSLAPICOMPAT isn't defined) will be hidden.\n\n### COPYRIGHT\n\nCopyright 2018-2021 The OpenSSL Project Authors. All Rights Reserved.\n\nLicensed under the Apache License 2.0 (the \"License\").  You may not use this file except in\ncompliance with the License.  You can obtain a copy in the file LICENSE in the source\ndistribution or at <https://www.openssl.org/source/license.html>.\n\n\n\n3.0.2                                        2026-04-07                    OPENSSLUSERMACROS(7SSL)\n\n"
        }
    ],
    "structuredContent": {
        "command": "OPENSSL_API_COMPAT",
        "section": "7ssl",
        "mode": "man",
        "summary": "opensslusermacros, OPENSSLAPICOMPAT, OPENSSLNODEPRECATED - User defined macros",
        "synopsis": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 9,
                "subsections": [
                    {
                        "name": "The macros",
                        "lines": 38
                    }
                ]
            },
            {
                "name": "COPYRIGHT",
                "lines": 9,
                "subsections": []
            }
        ]
    }
}