Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean up + fix build scripts re: USE_SSE= and PORTABLE= #5800

Closed

Commits on Sep 13, 2019

  1. Clean up + fix build scripts re: USE_SSE= and PORTABLE=

    Summary: In preparing to utilize a new Intel instruction extension, I
    noticed problems with the existing build script in regard to the
    existing utilized extensions, either with USE_SSE or PORTABLE flags.
    
    * PORTABLE=0 was interpreted the same as PORTABLE=1. Now empty and 0
    mean the same. (I guess you were not supposed to set PORTABLE= if you
    wanted non-portable--except that...)
    * The Facebook build script extensions would set PORTABLE=1 even if
    it's already set in a make var or environment. Now it does not override
    a non-empty setting, so use PORTABLE=0 for fully optimized build,
    overriding Facebook environment default.
    * Put in an explanation of the USE_SSE flag where it's used by
    build_detect_platform, and cleaned up some confusing/redundant
    associated logic.
    * If USE_SSE was set and expected intrinsics were not available,
    build_detect_platform would exit early but build would proceed with
    broken, incomplete configuration. Now warning is gracefully recovered.
    * If USE_SSE was set and expected intrinsics were not available,
    build would still try to use flags like -msse4.2 etc. which could lead
    to unexpected compilation failure or binary incompatibility. Now those
    flags are not used if the warning is issued.
    
    Test Plan: manual case testing
    pdillinger committed Sep 13, 2019
    Configuration menu
    Copy the full SHA
    c0b57bd View commit details
    Browse the repository at this point in the history