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

incompatible_dont_emit_static_libgcc: Don't unconditionally emit --static-libgcc #6825

Closed
hlopko opened this issue Dec 3, 2018 · 7 comments
Assignees
Labels
incompatible-change Incompatible/breaking change team-Rules-CPP Issues for C++ rules

Comments

@hlopko
Copy link
Member

hlopko commented Dec 3, 2018

Flag: --incompatible_dont_emit_static_libgcc
Available since: 0.22
Will be flipped in: 0.23
Enclosing tracking issue: #6185

Observable changes

If true, Bazel will not add --static-libgcc to the linking command line, it will be the responsibility of the C++ toolchain to append this flag.

Migration

Bazel already handles the migration in the case of a CROSSTOOL file that doesn't define no_legacy_features feature. In the rare case of a CROSSTOOL that does, please add:

feature {
  name: 'static_libgcc'
  enabled: true
  flag_set {
    action: 'c++-link-executable'
    action: 'c++-link-dynamic-library'
    with_feature { feature: 'static_link_cpp_runtimes' }
    flag_group {
      flag: '-static-libgcc'
    }
  }
}

This snippet assumes that static_link_cpp_runtimes is the feature that when enabled instructs C++ rules to link C++ runtime library statically.

@hlopko hlopko added team-Rules-CPP Issues for C++ rules incompatible-change Incompatible/breaking change Bazel 1.0 labels Dec 3, 2018
@hlopko hlopko self-assigned this Dec 3, 2018
bazel-io pushed a commit that referenced this issue Dec 4, 2018
This cl converts their experimental siblings into:

`--incompatible_dont_emit_static_libgcc`
(#6825)

`--incompatible_linkopts_in_user_link_flags`
(#6826)

RELNOTES:
Added `--incompatible_dont_emit_static_libgcc` (#6825)
Added `--incompatible_linkopts_in_user_link_flags` (#6826)
PiperOrigin-RevId: 223938818
@schroederc
Copy link
Contributor

This flag is named experimental_dont_emit_static_libgcc in 0.21.

@hlopko
Copy link
Member Author

hlopko commented Dec 27, 2018

Ouch, the rename didn't make it into the release. I will postpone the flag flip then. Thanks for letting me know!

@hlopko hlopko reopened this Dec 27, 2018
@hlopko hlopko reopened this Dec 27, 2018
bazel-io pushed a commit that referenced this issue Jan 2, 2019
#6942
#6825
#6826

RELNOTES: None.
PiperOrigin-RevId: 227491556
@meteorcloudy meteorcloudy changed the title Don't unconditionally emit --static-libgcc incompatible_dont_emit_static_libgcc: Don't unconditionally emit --static-libgcc Jan 2, 2019
bazel-io pushed a commit that referenced this issue Jan 28, 2019
Baseline: deb028e

Cherry picks:

   + a3a5975:
     Fix a race condition in remote cache
   + b8d0e1b:
     Use a new GitHub token and KMS key for the release process.
   + 3759e38:
     remote: fix unexpected IO error (not a directory)
   + 4473bb1:
     Fix a race condition in Bazel's Windows process management.
   + 9137fb9:
     undo flag flip of --incompatible_strict_action_env
   + 12ab12e:
     Revert "Enabling Bazel to generate input symlinks as defined by
     RE AP?
   + 6345c74:
     Automated rollback of commit
     30536ba.

New features:

  - Add inputs filtering for aquery
  - https://docs.bazel.build now supports versioned
    documentation. Use the selector at the top of the navigation bar
    to
    switch between documentation for different Bazel releases.
  - build_tar.py in tools/build_defs/pkg now supports a json manifest
    that can be used to add paths that have symbols that can't be
    specified via the command line

Important changes:

  - Added `--incompatible_dont_emit_static_libgcc`
    (#6825)
    Added `--incompatible_linkopts_in_user_link_flags`
    (#6826)
  - mobile-install now works with aapt2. Try it out with `bazel
    mobile-install --android_aapt=aapt2 //my:target`
  - Fixed a mobile-install v1 bug when deploying to Android 9 Pie
    devices. #6814
  - Add a new option --xbinary_fdo to pass xbinary profile.
  - --runs_per_test: place in TESTING documentation category.
  - Adds a clarifying message to test case summary output when all
    test cases pass but the target fails.
  - Fixed mobile-install v1 error when installing an app with native
    libraries onto an Android 9 (Pie) device. See
    bazelbuild/examples#77
  - Fixed issue where error messages from Android manifest merging
    actions were not propagated fully.
  - Add outputs and mnemonic filtering to aquery
  - New incompatible change flag for defaulting to aapt2 in Android
    builds: `--incompatible_use_aapt2_by_default`. To build with
    aapt2 today, pass the flag
    `--incompatible_use_aapt2_by_default=true` or
    `--android_aapt=aapt2`, or set the `aapt_version`  to `aapt2` on
    your `android_binary` or `android_local_test` target.
  - set projectId in all PublishBuildToolEventStreamRequest
  - Flip flag --incompatible_string_is_not_iterable
    (#5830)
  - cc_toolchain.(static|dynamic)_runtime_libs attributes are now
    optional
  - Added --incompatible_disable_runtimes_filegroups
    (#6942).
  - objc_bundle has been removed. Please migrate to rules_apple's
    [apple_bundle_import](https://github.com/bazelbuild/rules_apple/bl
    ob/master/doc/rules-resources.md#apple_bundle_import).
  - The apple_stub_binary rule has been deleted.
  - Incompatible flag `--incompatible_dont_emit_static_libgcc` has
    been flipped (#6825)
  - Incompatible flag `--incompatible_linkopts_in_user_link_flags`
    has been flipped (#6826)
  - Open source aquery & cquery query2 tests
  - Fixed a mobile-install bug where `arm64-v8a` libraries were not
    deployed correctly on `arm64` devices. This was done by enabling
    incremental native lib deployment by default. A previously
    undocumented `--android_incremental_native_libs` flag is removed,
    and is now the regular behavior. See
    #2239
  - Incompatible flag `--incompatible_linkopts_in_user_link_flags`
    has been flipped (#6826)
  - Incompatible flag `--incompatible_dont_emit_static_libgcc` has
    been flipped (#6825)
  - Added --incompatible_disable_legacy_crosstool_fields. See the
    migration notes at
    #6861.
  - In the Query HowTo, recommend ":*" instead of ":all". "all" might
    be the name of a target.
  - The default value for --incompatible_strict_action_env has been
    flipped to 'false' again, as we discovered breakages for local
    execution users. We'll need some more time to figure out the best
    way to make this work for local and remote execution. Follow
    #7026 for more details.

This release contains contributions from many people at Google, as well as Benjamin Peterson, Dave Lee, George Gensure, Gert van Dijk, Gustavo Storti Salibi, Keith Smiley, Loo Rong Jie, Lukasz Tekieli, Mikhail Mazurskiy, Thi, Travis Cline, Vladimir Chebotarev, Yannic.
weixiao-huang pushed a commit to weixiao-huang/bazel that referenced this issue Jan 31, 2019
Baseline: deb028e

Cherry picks:

   + a3a5975:
     Fix a race condition in remote cache
   + b8d0e1b:
     Use a new GitHub token and KMS key for the release process.
   + 3759e38:
     remote: fix unexpected IO error (not a directory)
   + 4473bb1:
     Fix a race condition in Bazel's Windows process management.
   + 9137fb9:
     undo flag flip of --incompatible_strict_action_env
   + 12ab12e:
     Revert "Enabling Bazel to generate input symlinks as defined by
     RE AP?
   + 6345c74:
     Automated rollback of commit
     30536ba.

New features:

  - Add inputs filtering for aquery
  - https://docs.bazel.build now supports versioned
    documentation. Use the selector at the top of the navigation bar
    to
    switch between documentation for different Bazel releases.
  - build_tar.py in tools/build_defs/pkg now supports a json manifest
    that can be used to add paths that have symbols that can't be
    specified via the command line

Important changes:

  - Added `--incompatible_dont_emit_static_libgcc`
    (bazelbuild#6825)
    Added `--incompatible_linkopts_in_user_link_flags`
    (bazelbuild#6826)
  - mobile-install now works with aapt2. Try it out with `bazel
    mobile-install --android_aapt=aapt2 //my:target`
  - Fixed a mobile-install v1 bug when deploying to Android 9 Pie
    devices. bazelbuild#6814
  - Add a new option --xbinary_fdo to pass xbinary profile.
  - --runs_per_test: place in TESTING documentation category.
  - Adds a clarifying message to test case summary output when all
    test cases pass but the target fails.
  - Fixed mobile-install v1 error when installing an app with native
    libraries onto an Android 9 (Pie) device. See
    bazelbuild/examples#77
  - Fixed issue where error messages from Android manifest merging
    actions were not propagated fully.
  - Add outputs and mnemonic filtering to aquery
  - New incompatible change flag for defaulting to aapt2 in Android
    builds: `--incompatible_use_aapt2_by_default`. To build with
    aapt2 today, pass the flag
    `--incompatible_use_aapt2_by_default=true` or
    `--android_aapt=aapt2`, or set the `aapt_version`  to `aapt2` on
    your `android_binary` or `android_local_test` target.
  - set projectId in all PublishBuildToolEventStreamRequest
  - Flip flag --incompatible_string_is_not_iterable
    (bazelbuild#5830)
  - cc_toolchain.(static|dynamic)_runtime_libs attributes are now
    optional
  - Added --incompatible_disable_runtimes_filegroups
    (bazelbuild#6942).
  - objc_bundle has been removed. Please migrate to rules_apple's
    [apple_bundle_import](https://github.com/bazelbuild/rules_apple/bl
    ob/master/doc/rules-resources.md#apple_bundle_import).
  - The apple_stub_binary rule has been deleted.
  - Incompatible flag `--incompatible_dont_emit_static_libgcc` has
    been flipped (bazelbuild#6825)
  - Incompatible flag `--incompatible_linkopts_in_user_link_flags`
    has been flipped (bazelbuild#6826)
  - Open source aquery & cquery query2 tests
  - Fixed a mobile-install bug where `arm64-v8a` libraries were not
    deployed correctly on `arm64` devices. This was done by enabling
    incremental native lib deployment by default. A previously
    undocumented `--android_incremental_native_libs` flag is removed,
    and is now the regular behavior. See
    bazelbuild#2239
  - Incompatible flag `--incompatible_linkopts_in_user_link_flags`
    has been flipped (bazelbuild#6826)
  - Incompatible flag `--incompatible_dont_emit_static_libgcc` has
    been flipped (bazelbuild#6825)
  - Added --incompatible_disable_legacy_crosstool_fields. See the
    migration notes at
    bazelbuild#6861.
  - In the Query HowTo, recommend ":*" instead of ":all". "all" might
    be the name of a target.
  - The default value for --incompatible_strict_action_env has been
    flipped to 'false' again, as we discovered breakages for local
    execution users. We'll need some more time to figure out the best
    way to make this work for local and remote execution. Follow
    bazelbuild#7026 for more details.

This release contains contributions from many people at Google, as well as Benjamin Peterson, Dave Lee, George Gensure, Gert van Dijk, Gustavo Storti Salibi, Keith Smiley, Loo Rong Jie, Lukasz Tekieli, Mikhail Mazurskiy, Thi, Travis Cline, Vladimir Chebotarev, Yannic.
@scottmin0r
Copy link

Release notes for 0.22.0 says this flag was both added and flipped in 0.22 - is this accurate?

@hlopko
Copy link
Member Author

hlopko commented Feb 6, 2019

Yup I messed that up, I thought the flag made it into 0.21, so I flipped it. But then I realized it's not the case, and I unflipped it, but forgot to update release notes. I'm sorry for the confusion.

@philwo
Copy link
Member

philwo commented Feb 6, 2019

I verified that this flag was flipped and thus will be included in the Bazel 0.23.0 release.

bazel-io pushed a commit that referenced this issue Feb 12, 2019
Closes #6825.
Closes #6185.

This is a rollforward of 5d77edf after Bazel with the flag was cut.

RELNOTES: Incompatible flag `--incompatible_dont_emit_static_libgcc` has been flipped (#6825)
PiperOrigin-RevId: 233589665
bazel-io pushed a commit that referenced this issue Feb 26, 2019
Baseline: 441fd75

Cherry picks:

   + 6ca7763:
     Fix a typo
   + 2310b1c:
     Ignore SIGCHLD in test setup script
   + f9eb1b5:
     Complete channel initialization in the event loop

Incompatible changes:

  - //src:bazel uses the minimal embedded JDK, if you want to
    avoid the extra steps of minimizing the JDK, use //src:bazel-dev
    instead.
  - //src:bazel uses the minimal embedded JDK, if you want to
    avoid the extra steps of building bazel with the minimized JDK,
    use //src:bazel-dev
    instead.
  - The default value of --host_platform and --platforms will be
      changed to not be dependent on the configuration. This means
    that setting
      --cpu or --host_cpu will not affect the target or host platform.
  - Toolchain resolution for cc rules is now enabled via an
    incompatible flag, --incompatible_enable_cc_toolchain_resolution.
    The previous
    flag, --enabled_toolchain_types, is deprecated and will be
    removed.
  - java_(mutable_|)proto_library: removed strict_deps attribute.
  - Python rules will soon reject the legacy "py" struct provider
    (preview by enabling --incompatible_disallow_legacy_py_provider).
    Upgrade rules to use PyInfo instead. See
    [#7298](#7298).
  - java_(mutable_|)proto_library: removed strict_deps attribute.
  - Two changes to native Python rules: 1) `default_python_version`
    and `--force_python` are deprecated; use `python_version` and
    `--python_version` respectively instead. You can preview the
    removal of the deprecated names with
    --incompatible_remove_old_python_version_api. See
    [#7308](#7308). 2) The
    version flag will no longer override the declared version of a
    `py_binary` or `py_test` target. You can preview this new
    behavior with --incompatible_allow_python_version_transitions.
    See [#7307](#7307).

Important changes:

  - There is a new flag available
    `--experimental_java_common_create_provider_enabled_packages`
    that acts as a whitelist for usages of
    `java_common.create_provider`. The constructor will be deprecated
    in Bazel 0.23.
  - [#7024] Allow chaining of the same function type in aquery.
  - Introduces --local_{ram,cpu}_resources, which will take the place
    of --local_resources.
  - [#6930] Add documentation for the aquery command.
  - Incompatible flag `--incompatible_dont_emit_static_libgcc` has
    been flipped (#6825)
  - Incompatible flag `--incompatible_linkopts_in_user_link_flags`
    has been flipped (#6826)
  - Flag --incompatible_range_type is removed.
  - Flag --incompatible_disallow_slash_operator is removed.
  - Flag --incompatible_disallow_conflicting_providers is removed.
  - `--incompatible_disallow_data_transition` is now enabled by
    default
  - Allow inclusion of param files in aquery output
  - [#6985] Add test to verify aquery's behavior for Cpp action
    templates.
  - --incompatible_require_feature_configuration_for_pic was flipped
    (#7007).
  - Also ignore module-info.class in multi-version Jars
  - objc_framework has been deleted. Please refer to
    apple_dynamic_framework_import and apple_static_framework_import
    rules available in
    [rules_apple](https://github.com/bazelbuild/rules_apple/blob/maste
    r/doc/rules-general.md)
  - --test_sharding_strategy=experimental_heuristic is no more
  - objc_bundle_library has been removed. Please migrate to
    rules_apple's
    [apple_resource_bundle](https://github.com/bazelbuild/rules_apple/
    blob/master/doc/rules-resources.md#apple_resource_bundle).
  - You can now use the attribute `aapt_version` or the flag
    `--android_aapt` to pick the aapt version for android_local_test
    tests
  - In --keep_going mode, Bazel now correctly returns a non-zero exit
    code when encountering a package loading error during target
    pattern parsing of patterns like "//foo:all" and "//foo/...".
  - The default value for --incompatible_strict_action_env has been
    flipped to 'false' again, as we discovered breakages for local
    execution users. We'll need some more time to figure out the best
    way to make this work for local and remote execution. Follow
    #7026 for more details.
  - Locally-executed spawns tagged "no-cache" no longer upload their
    outputs to the remote cache.
  - Introduces --host_compiler flag to allow setting a compiler for
    host compilation when --host_crosstool_top is specified.
  - --incompatible_expand_directories is enabled by default
  - [aquery] Handle the case of aspect-on-aspect.
  - Fixed a longstanding bug in the http remote cache where the value
    passed to
    --remote_timeout would be interpreted as milliseconds instead of
    seconds.
  - Enable --incompatible_use_jdk10_as_host_javabase by default, see
    #6661
  - Add --incompatible_use_jdk11_as_host_javabase: makes JDK 11 the
    default --host_javabase for remote jdk
    (#7219)
  - Highlight TreeArtifact in aquery text output.
  - Locally-executed spawns tagged "no-cache" no longer upload their
    outputs to the remote cache.
  - java_common APIs now accept JavaToolchainInfo and JavaRuntimeInfo
    instead of configured targets for java_toolchain and java_runtime
  - cc_common.create_cc_toolchain_config_info is stable and available
    for production use
  - incompatible_use_toolchain_providers_in_java_common: pass
    JavaToolchainInfo and JavaRuntimeInfo providers to java_common
    APIs instead of configured targets
    (#7186)
  - --incompatible_strict_argument_ordering is enabled by default.
  - Bazel now supports reading cache hits from a repository cache,
    even if it doesn't have write access to the cache.
  - Adding arm64e to OSX CROSSTOOL.
  - Ignore package-level licenses on config_setting.
  - Add an optional output_source_jar parameter to java_common.compile
  - --incompatible_disable_objc_provider_resources is now enabled by
    default. This disables ObjcProvider's fields related to resource
    processing.
  - Explicitly set https.protocols and exclude TLSv1.3.
  - Bazel now validates that JAVA_HOME points to a valid JDK and
    falls back to auto-detection by looking up the path of `javac`.
  - Upgrade the embedded JDK version to 11.0.2.
  - Added --incompatible_disable_crosstool_file
    (#7320)
  - --incompatible_disable_objc_provider_resources is now enabled by
    default. This disables ObjcProvider's fields related to resource
    processing.
  - --incompatible_disable_tools_defaults_package has been flipped.
  - For tests that do not generate a test.xml, Bazel now uses a
    separate action to generate one; this results in minor
    differences in the generated test.xml, and makes the generation
    more reliable overall.
  - incompatible_generate_javacommon_source_jar: java_common.compile
    now always generates a source jar, see
    #5824.
  - New incompatible flag
    --incompatible_disallow_struct_provider_syntax removes the
    ability for rule implementation functions to return struct. Such
    functions should return a list of providers instead. Migration
    tracking: #7347

This release contains contributions from many people at Google, as well as Benjamin Peterson, Ed Schouten, erenon, George Gensure, Greg Estren, Igal Tabachnik, Ittai Zeidman, Jannis Andrija Schnitzer, John Millikin, Keith Smiley, Kelly Campbell, Max Vorobev, nicolov, Robin Nabel.
bazel-io pushed a commit that referenced this issue Mar 26, 2019
Baseline: 235e76b

Cherry picks:

   + badd82e:
     Automated rollback of commit
     1b4c37c.
   + 33e5719:
     Fix the Python version select() mechanism to handle
     PY3-as-default
   + 56366ee:
     Set non-empty values for msvc_env_* when VC not installed
   + 22b3fbf:
     Windows, test wrapper: fix broken integration test
   + f14d447:
     Add whitelist file for starlark transitions
   + d99bc47:
     Update BUILD
   + 3529ad7:
     Rename tools/function_transition_whitelist/BUILD to
     tools/whitelists/function_transition_whitelist/BUILD
   + de0612a:
     Update bazel_toolchains to latest release and add toolchain
     config target for BuildKite CI (rbe_ubuntu1604)
   + 3e660ad:
     Automated rollback of commit
     0877340.
   + 314cf1f:
     Pass -undefined dynamic_lookup to dynamic library linking
     actions on Mac
   + fc586a8:
     Move cc_flags target into @bazel_tools//tools/cpp.
   + ea1703b:
     C++: Fix crash reported in #7721
   + 803801d:
     Pass execution info to xml generating spawn. Fixes #7794

Incompatible changes:

  - Added --incompatible_py3_is_default to test switching the default
    Python version to PY3 for py_binary/py_test targets that do not
    specify a version. See #7359.
  - //tools/cmd_line_differ has been renamed to //tools/aquery_differ
    & can now compare (in addition to command lines) inputs of
    actions given 2 aquery results.
  - java_(mutable_|)proto_library: removed strict_deps attribute.
  - The flag --incompatible_list_based_execution_strategy_selection
    was added and is used to ease the migration to the new style of
    specifying
    execution strategy selection and fallback behavior. The
    documentation for
    this flag is here: #7480
  - Added --incompatible_py2_outputs_are_suffixed, for switching the
    bazel-bin symlink to point to Python 3 outputs instead of Python
    2 outputs. See
    [#7593](#7593).

New features:

  - Make actions.args() object chainable.
  - Added --incompatible_windows_style_arg_escaping flag: enables
    correct subprocess argument escaping on Windows. (No-op on other
    platforms.)
  - Added --incompatible_windows_escape_jvm_flags flag: enables
    correct java_binary.jvm_flags and java_test.jvm_flags
    tokenization and escaping on Windows. (No-op on other platforms.)

Important changes:

  - Allow running aquery against the current state of Skyframe
  - Added support for the "navigation" resource directory to Android
    resource processing in Bazel. This is used by the Navigation
    Architecture Component.
  - --incompatible_disable_runtimes_filegroups was flipped
    (#6942)
  - Incompatible flag `--incompatible_linkopts_in_user_link_flags`
    has been flipped (#6826)
  - Incompatible flag `--incompatible_dont_emit_static_libgcc` has
    been flipped (#6825)
  - --incompatible_disallow_filetype is enabled by default.
  - Fixed issue where exceptions and stacktraces were silently
    swallowed in the Android resource processing pipeline.
  - `--incompatible_disable_expand_if_all_available_in_flag_set` has
    been flipped (#7008)
  - --incompatible_disallow_dict_plus is enabled by default
  - Adds --incompatible_disable_objc_library_resources to disable
    resource attributes in objc_library. Please migrate these
    attributes to `data` instead.
  - --incompatible_disallow_old_style_args_add is enabled by default.
  - Using the `native` module in BUILD files is deprecated. It will
    be forbidden with --incompatible_disallow_native_in_build_file.
  - (Python rules) PyRuntimeInfo is exposed to Starlark, making it
    possible for Starlark rules to depend on or imitate `py_runtime`.
    The `files` attribute of `py_runtime` is no longer mandatory.
  - incompatible_use_toolchain_providers_in_java_common: pass
    JavaToolchainInfo and JavaRuntimeInfo providers to java_common
    APIs instead of configured
    targetshttps://github.com//issues/7186.
  - is_using_fission crosstool variable is now exposed in all compile
    actions when fission is active (it used to be exposed only for
    linking actions).
  - incompatible_use_toolchain_providers_in_java_common: pass
    JavaToolchainInfo and JavaRuntimeInfo providers to java_common
    APIs instead of configured
    targetshttps://github.com//issues/7186.
  - `py_runtime` gains a `python_version` attribute for specifying
    whether it represents a Python 2 or 3 interpreter.
  - `--incompatible_java_coverage` is enabled by default.
  - Starlark rules can safely declare attributes named "licenses"
  - When using
    --incompatible_list_based_execution_strategy_selection, Bazel
    will use remote execution by default (if you specify
    --remote_executor), otherwise persistent workers (if the action
    supports it), otherwise sandboxed local execution (if the action
    and platform supports it) and at last unsandboxed local
    execution. The flags --spawn_strategy and --strategy continue to
    work as before - this only sets new defaults for the case where
    you don't specify these flags.
  - Set default value of --incompatible_remap_main_repo to true.
  - Set default value of --incompatible_remap_main_repo to true.

This release contains contributions from many people at Google, as well as Andrew Suffield, Brandon Lico, Chris Eason, Clint Harrison, Ed Schouten, Garrett Hopper, George Gensure, Greg, John Millikin, Julie, Keith Smiley, Laurent Le Brun, Ryan Beasley, Shmuel H, Travis Cline, Vladimir Chebotarev.
katre pushed a commit that referenced this issue Mar 29, 2019
Baseline: 235e76b

Cherry picks:

   + badd82e:
     Automated rollback of commit
     1b4c37c.
   + 33e5719:
     Fix the Python version select() mechanism to handle
     PY3-as-default
   + 56366ee:
     Set non-empty values for msvc_env_* when VC not installed
   + 22b3fbf:
     Windows, test wrapper: fix broken integration test
   + f14d447:
     Add whitelist file for starlark transitions
   + d99bc47:
     Update BUILD
   + 3529ad7:
     Rename tools/function_transition_whitelist/BUILD to
     tools/whitelists/function_transition_whitelist/BUILD
   + de0612a:
     Update bazel_toolchains to latest release and add toolchain
     config target for BuildKite CI (rbe_ubuntu1604)
   + 3e660ad:
     Automated rollback of commit
     0877340.
   + 314cf1f:
     Pass -undefined dynamic_lookup to dynamic library linking
     actions on Mac
   + fc586a8:
     Move cc_flags target into @bazel_tools//tools/cpp.
   + ea1703b:
     C++: Fix crash reported in #7721
   + 803801d:
     Pass execution info to xml generating spawn. Fixes #7794

Incompatible changes:

  - Added --incompatible_py3_is_default to test switching the default
    Python version to PY3 for py_binary/py_test targets that do not
    specify a version. See #7359.
  - //tools/cmd_line_differ has been renamed to //tools/aquery_differ
    & can now compare (in addition to command lines) inputs of
    actions given 2 aquery results.
  - java_(mutable_|)proto_library: removed strict_deps attribute.
  - The flag --incompatible_list_based_execution_strategy_selection
    was added and is used to ease the migration to the new style of
    specifying
    execution strategy selection and fallback behavior. The
    documentation for
    this flag is here: #7480
  - Added --incompatible_py2_outputs_are_suffixed, for switching the
    bazel-bin symlink to point to Python 3 outputs instead of Python
    2 outputs. See
    [#7593](#7593).

New features:

  - Make actions.args() object chainable.
  - Added --incompatible_windows_style_arg_escaping flag: enables
    correct subprocess argument escaping on Windows. (No-op on other
    platforms.)
  - Added --incompatible_windows_escape_jvm_flags flag: enables
    correct java_binary.jvm_flags and java_test.jvm_flags
    tokenization and escaping on Windows. (No-op on other platforms.)

Important changes:

  - Allow running aquery against the current state of Skyframe
  - Added support for the "navigation" resource directory to Android
    resource processing in Bazel. This is used by the Navigation
    Architecture Component.
  - --incompatible_disable_runtimes_filegroups was flipped
    (#6942)
  - Incompatible flag `--incompatible_linkopts_in_user_link_flags`
    has been flipped (#6826)
  - Incompatible flag `--incompatible_dont_emit_static_libgcc` has
    been flipped (#6825)
  - --incompatible_disallow_filetype is enabled by default.
  - Fixed issue where exceptions and stacktraces were silently
    swallowed in the Android resource processing pipeline.
  - `--incompatible_disable_expand_if_all_available_in_flag_set` has
    been flipped (#7008)
  - --incompatible_disallow_dict_plus is enabled by default
  - Adds --incompatible_disable_objc_library_resources to disable
    resource attributes in objc_library. Please migrate these
    attributes to `data` instead.
  - --incompatible_disallow_old_style_args_add is enabled by default.
  - Using the `native` module in BUILD files is deprecated. It will
    be forbidden with --incompatible_disallow_native_in_build_file.
  - (Python rules) PyRuntimeInfo is exposed to Starlark, making it
    possible for Starlark rules to depend on or imitate `py_runtime`.
    The `files` attribute of `py_runtime` is no longer mandatory.
  - incompatible_use_toolchain_providers_in_java_common: pass
    JavaToolchainInfo and JavaRuntimeInfo providers to java_common
    APIs instead of configured
    targetshttps://github.com//issues/7186.
  - is_using_fission crosstool variable is now exposed in all compile
    actions when fission is active (it used to be exposed only for
    linking actions).
  - incompatible_use_toolchain_providers_in_java_common: pass
    JavaToolchainInfo and JavaRuntimeInfo providers to java_common
    APIs instead of configured
    targetshttps://github.com//issues/7186.
  - `py_runtime` gains a `python_version` attribute for specifying
    whether it represents a Python 2 or 3 interpreter.
  - `--incompatible_java_coverage` is enabled by default.
  - Starlark rules can safely declare attributes named "licenses"
  - When using
    --incompatible_list_based_execution_strategy_selection, Bazel
    will use remote execution by default (if you specify
    --remote_executor), otherwise persistent workers (if the action
    supports it), otherwise sandboxed local execution (if the action
    and platform supports it) and at last unsandboxed local
    execution. The flags --spawn_strategy and --strategy continue to
    work as before - this only sets new defaults for the case where
    you don't specify these flags.
  - Set default value of --incompatible_remap_main_repo to true.
  - Set default value of --incompatible_remap_main_repo to true.

This release contains contributions from many people at Google, as well as Andrew Suffield, Brandon Lico, Chris Eason, Clint Harrison, Ed Schouten, Garrett Hopper, George Gensure, Greg, John Millikin, Julie, Keith Smiley, Laurent Le Brun, Ryan Beasley, Shmuel H, Travis Cline, Vladimir Chebotarev.
@sgyan19
Copy link

sgyan19 commented Jul 31, 2019

in Rlease 0.25.0 I can't find this flag.does it be removed?

@philwo
Copy link
Member

philwo commented Jul 31, 2019

@sgyan19 The flag is technically still there, but it doesn't do anything anymore.

It was enabled by default in 0.23.0 and at the same time, the possibility to disable it was removed.

luca-digrazia pushed a commit to luca-digrazia/DatasetCommitsDiffSearch that referenced this issue Sep 4, 2022
    Closes #6825.
    Closes #6185.

    This is a rollforward of bazelbuild/bazel@5d77edf after Bazel with the flag was cut.

    RELNOTES: Incompatible flag `--incompatible_dont_emit_static_libgcc` has been flipped (bazelbuild/bazel#6825)
    PiperOrigin-RevId: 233589665
luca-digrazia pushed a commit to luca-digrazia/DatasetCommitsDiffSearch that referenced this issue Sep 4, 2022
    Closes #6825.
    Closes #6185.

    This is a rollforward of bazelbuild/bazel@5d77edf after Bazel 0.22 was cut.

    RELNOTES: Incompatible flag `--incompatible_dont_emit_static_libgcc` has been flipped (bazelbuild/bazel#6825)
    PiperOrigin-RevId: 228849448
luca-digrazia pushed a commit to luca-digrazia/DatasetCommitsDiffSearch that referenced this issue Sep 4, 2022
    *** Reason for rollback ***

    Flag didn't make it into bazel 0.21, I have to postpone the flip.

    *** Original change description ***

    Flip --incompatible_dont_emit_static_libgcc flag

    Closes #6825.

    RELNOTES: Incompatible flag `--incompatible_dont_emit_static_libgcc` has been flipped (bazelbuild/bazel#6825)
    PiperOrigin-RevId: 227002034
luca-digrazia pushed a commit to luca-digrazia/DatasetCommitsDiffSearch that referenced this issue Sep 4, 2022
    Closes #6825.

    RELNOTES: Incompatible flag `--incompatible_dont_emit_static_libgcc` has been flipped (bazelbuild/bazel#6825)
    PiperOrigin-RevId: 226340615
luca-digrazia pushed a commit to luca-digrazia/DatasetCommitsDiffSearch that referenced this issue Sep 4, 2022
    This cl converts their experimental siblings into:

    `--incompatible_dont_emit_static_libgcc`
    (bazelbuild/bazel#6825)

    `--incompatible_linkopts_in_user_link_flags`
    (bazelbuild/bazel#6826)

    RELNOTES:
    Added `--incompatible_dont_emit_static_libgcc` (bazelbuild/bazel#6825)
    Added `--incompatible_linkopts_in_user_link_flags` (bazelbuild/bazel#6826)
    PiperOrigin-RevId: 223938818
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
incompatible-change Incompatible/breaking change team-Rules-CPP Issues for C++ rules
Projects
None yet
Development

No branches or pull requests

6 participants