address argument to atomic operation must be a pointer to non-const _Atomic type
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- C
- Star
- 40.4k
- Fork
- 8.2k
- Merge trung bình
- 2 ngày 13 giờ
- Pull request đã merge (30 ngày)
- 96
Mô tả
Description
Hello! I'm the maintainer of php in MacPorts, and I noticed this build failure of php 8.2.0alpha2 and 8.2.0alpha1 on macOS 10.13 with Xcode 9.4.1 and its Apple clang 902.0.39.2:
Zend/zend_atomic.h:85:9: error: address argument to atomic operation must be a pointer to non-const _Atomic type ('const _Atomic(bool) *' invalid)
return __c11_atomic_load(&obj->value, __ATOMIC_SEQ_CST);
^ ~~~~~~~~~~~
Here is a full failed build log from macOS 10.13.
I also verified the problem on macOS 10.13 with Xcode 10.1 and its Apple clang 1000.11.45.5.
It also fails similarly on macOS 10.12, OS X 10.11, and OS X 10.10.
The build succeeds on macOS 10.14 with Xcode 10.3 and its Apple clang 1001.0.46.4 and on newer systems. Here is a full successful build log from macOS 10.14.
Curiously the build also succeeds on much older systems like OS X 10.9, OS X 10.8, and Mac OS X 10.7 with their older versions of Xcode and clang.
I see "c11" in the error message but I don't see -std=c11 being passed to the compiler. Thinking this might be a situation where certain older compilers would support whatever you're wanting to do if only you would ask the compiler to be in c11 mode, I tried adding -std=c11 on macOS 10.13 with Xcode 10.1 and its Apple clang 1000.11.45.5, and I also tried -std=gnu11, but neither of those changed the error.
php 8.1.7 and earlier don't have this problem.
PHP Version
8.2.0alpha2
Operating System
macOS 10.13.6
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với Zend/zend_atomic.h và tái hiện bản build PHP 8.2 trên các phiên bản macOS và Apple clang bị ảnh hưởng được liệt kê trong báo cáo. So sánh hành vi của các thao tác nguyên tử giữa các phiên bản trình biên dịch được báo cáo; công việc hoàn tất khi PHP build thành công trên các hệ thống bị ảnh hưởng mà không gây hồi quy cho các cấu hình mới hơn và cũ hơn.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- c, php
- Lĩnh vực
- build-system, operating-systems
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 48/100