| /freebsd/contrib/wpa/wpa_supplicant/ |
| H A D | bss.c | 24 static void wpa_bss_set_hessid(struct wpa_bss *bss) in wpa_bss_set_hessid() argument 27 const u8 *ie = wpa_bss_get_ie(bss, WLAN_EID_INTERWORKING); in wpa_bss_set_hessid() 29 os_memset(bss->hessid, 0, ETH_ALEN); in wpa_bss_set_hessid() 33 os_memcpy(bss->hessid, ie + 3, ETH_ALEN); in wpa_bss_set_hessid() 35 os_memcpy(bss->hessid, ie + 5, ETH_ALEN); in wpa_bss_set_hessid() 109 int wpa_bss_anqp_unshare_alloc(struct wpa_bss *bss) in wpa_bss_anqp_unshare_alloc() argument 113 if (bss->anqp && bss->anqp->users > 1) { in wpa_bss_anqp_unshare_alloc() 115 anqp = wpa_bss_anqp_clone(bss->anqp); in wpa_bss_anqp_unshare_alloc() 119 bss->anqp->users--; in wpa_bss_anqp_unshare_alloc() 120 bss->anqp = anqp; in wpa_bss_anqp_unshare_alloc() [all …]
|
| H A D | ap.c | 484 struct hostapd_bss_config *bss = conf->bss[0]; in wpa_supplicant_conf_ap() local 488 os_strlcpy(bss->iface, wpa_s->ifname, sizeof(bss->iface)); in wpa_supplicant_conf_ap() 498 bss->pbss = ssid->pbss; in wpa_supplicant_conf_ap() 529 bss->basic_rates = list; in wpa_supplicant_conf_ap() 543 bss->supported_rates = list; in wpa_supplicant_conf_ap() 546 bss->isolate = !wpa_s->conf->p2p_intra_bss; in wpa_supplicant_conf_ap() 547 bss->extended_key_id = wpa_s->conf->extended_key_id; in wpa_supplicant_conf_ap() 548 bss->force_per_enrollee_psk = wpa_s->global->p2p_per_sta_psk; in wpa_supplicant_conf_ap() 549 bss->wpa_deny_ptk0_rekey = ssid->wpa_deny_ptk0_rekey; in wpa_supplicant_conf_ap() 552 os_memcpy(bss->ip_addr_go, wpa_s->p2pdev->conf->ip_addr_go, 4); in wpa_supplicant_conf_ap() [all …]
|
| H A D | bgscan_learn.c | 39 struct dl_list bss; member 45 static void bss_free(struct bgscan_learn_bss *bss) in bss_free() argument 47 os_free(bss->neigh); in bss_free() 48 os_free(bss); in bss_free() 68 static void bgscan_learn_add_neighbor(struct bgscan_learn_bss *bss, in bgscan_learn_add_neighbor() argument 73 if (ether_addr_equal(bss->bssid, bssid)) in bgscan_learn_add_neighbor() 75 if (bssid_in_array(bss->neigh, bss->num_neigh, bssid)) in bgscan_learn_add_neighbor() 78 n = os_realloc_array(bss->neigh, bss->num_neigh + 1, ETH_ALEN); in bgscan_learn_add_neighbor() 82 os_memcpy(n + bss->num_neigh * ETH_ALEN, bssid, ETH_ALEN); in bgscan_learn_add_neighbor() 83 bss->neigh = n; in bgscan_learn_add_neighbor() [all …]
|
| H A D | bss.h | 153 static inline const u8 * wpa_bss_ie_ptr(const struct wpa_bss *bss) in wpa_bss_ie_ptr() argument 155 return bss->ies; in wpa_bss_ie_ptr() 159 const struct wpa_bss *bss); 164 void wpa_bss_remove(struct wpa_supplicant *wpa_s, struct wpa_bss *bss, 186 const u8 * wpa_bss_get_ie(const struct wpa_bss *bss, u8 ie); 187 const u8 * wpa_bss_get_ie_beacon(const struct wpa_bss *bss, u8 ie); 188 const u8 * wpa_bss_get_ie_ext(const struct wpa_bss *bss, u8 ext); 189 const u8 * wpa_bss_get_vendor_ie(const struct wpa_bss *bss, u32 vendor_type); 190 const u8 * wpa_bss_get_vendor_ie_beacon(const struct wpa_bss *bss, 192 struct wpabuf * wpa_bss_get_vendor_ie_multi(const struct wpa_bss *bss, [all …]
|
| H A D | interworking.c | 50 struct wpa_supplicant *wpa_s, struct wpa_bss *bss, int ignore_bw, 53 struct wpa_supplicant *wpa_s, struct wpa_bss *bss, int ignore_bw, 230 static int additional_roaming_consortiums(struct wpa_bss *bss) in additional_roaming_consortiums() argument 233 ie = wpa_bss_get_ie(bss, WLAN_EID_ROAMING_CONSORTIUM); in additional_roaming_consortiums() 248 struct wpa_bss *bss) in interworking_anqp_send_req() argument 259 MAC2STR(bss->bssid)); in interworking_anqp_send_req() 260 wpa_s->interworking_gas_bss = bss; in interworking_anqp_send_req() 268 additional_roaming_consortiums(bss))) in interworking_anqp_send_req() 284 if (wpa_bss_get_vendor_ie(bss, HS20_IE_VENDOR_TYPE)) { in interworking_anqp_send_req() 315 res = gas_query_req(wpa_s->gas, bss->bssid, bss->freq, 0, 0, buf, in interworking_anqp_send_req() [all …]
|
| H A D | mesh.c | 157 struct hostapd_data *bss = ifmsh->bss[0]; in wpas_mesh_init_rsn() local 171 bss->conf->wpa = ssid->proto; in wpas_mesh_init_rsn() 172 bss->conf->wpa_key_mgmt = ssid->key_mgmt; in wpas_mesh_init_rsn() 175 bss->conf->sae_groups = int_array_dup(wpa_s->conf->sae_groups); in wpas_mesh_init_rsn() 177 bss->conf->sae_groups = int_array_dup(default_groups); in wpas_mesh_init_rsn() 178 if (!bss->conf->sae_groups) in wpas_mesh_init_rsn() 182 bss->conf->ssid.wpa_passphrase = dup_binstr(password, len); in wpas_mesh_init_rsn() 264 params->basic_rates = ifmsh->bss[0]->basic_rates; in wpas_mesh_complete() 266 params->conf.ht_opmode = ifmsh->bss[0]->iface->ht_op_mode; in wpas_mesh_complete() 301 struct hostapd_data *bss; in wpa_supplicant_mesh_enable_iface_cb() local [all …]
|
| H A D | events.c | 157 struct wpa_bss *bss = __wpa_supplicant_get_new_bss(wpa_s, bssid, ssid, in _wpa_supplicant_get_new_bss() local 160 if (bss || !try_update_scan_results) in _wpa_supplicant_get_new_bss() 161 return bss; in _wpa_supplicant_get_new_bss() 172 struct wpa_bss *bss = NULL; in wpa_supplicant_get_new_bss() local 180 bss = _wpa_supplicant_get_new_bss(wpa_s, bssid, drv_ssid, res, in wpa_supplicant_get_new_bss() 184 if (!bss && ssid && ssid->ssid_len > 0) { in wpa_supplicant_get_new_bss() 185 bss = _wpa_supplicant_get_new_bss(wpa_s, bssid, ssid->ssid, in wpa_supplicant_get_new_bss() 190 if (!bss) in wpa_supplicant_get_new_bss() 191 bss = _wpa_supplicant_get_new_bss(wpa_s, bssid, NULL, 0, in wpa_supplicant_get_new_bss() 194 return bss; in wpa_supplicant_get_new_bss() [all …]
|
| H A D | hs20_supplicant.c | 72 int get_hs20_version(struct wpa_bss *bss) in get_hs20_version() argument 76 if (!bss) in get_hs20_version() 79 ie = wpa_bss_get_vendor_ie(bss, HS20_IE_VENDOR_TYPE); in get_hs20_version() 88 struct wpa_bss *bss) in is_hs20_network() argument 96 if (bss && !wpa_bss_get_vendor_ie(bss, HS20_IE_VENDOR_TYPE)) in is_hs20_network() 190 struct wpa_bss *bss; in hs20_anqp_send_req() local 193 bss = wpa_bss_get_bssid(wpa_s, dst); in hs20_anqp_send_req() 194 if (!bss) { in hs20_anqp_send_req() 201 wpa_bss_anqp_unshare_alloc(bss); in hs20_anqp_send_req() 202 freq = bss->freq; in hs20_anqp_send_req() [all …]
|
| H A D | pasn_supplicant.c | 288 struct wpa_bss *bss, in wpas_pasn_get_params_from_bss() argument 307 rsne = wpa_bss_get_rsne(wpa_s, bss, NULL, false); in wpas_pasn_get_params_from_bss() 319 rsnxe = wpa_bss_get_rsnxe(wpa_s, bss, NULL, false); in wpas_pasn_get_params_from_bss() 466 const struct wpa_bss *bss, const char *password) in wpas_pasn_add_temporary_network() argument 476 ssid->ssid = os_memdup(bss->ssid, bss->ssid_len); in wpas_pasn_add_temporary_network() 480 ssid->ssid_len = bss->ssid_len; in wpas_pasn_add_temporary_network() 490 MACSTR, MAC2STR(bss->bssid)); in wpas_pasn_add_temporary_network() 499 struct wpa_bss *bss; in wpas_pasn_get_bss() local 501 bss = wpa_bss_get_bssid(wpa_s, peer_addr); in wpas_pasn_get_bss() 502 if (!bss) { in wpas_pasn_get_bss() [all …]
|
| H A D | wnm_sta.c | 668 struct wpa_bss *bss = wpa_s->current_bss; in wnm_nei_get_chan() local 672 if (bss) { in wnm_nei_get_chan() 673 const u8 *elem = wpa_bss_get_ie(bss, WLAN_EID_COUNTRY); in wnm_nei_get_chan() 829 static u32 wnm_get_bss_info(struct wpa_supplicant *wpa_s, struct wpa_bss *bss) in wnm_get_bss_info() argument 840 if (bss->caps & WLAN_CAPABILITY_SPECTRUM_MGMT) in wnm_get_bss_info() 842 if (bss->caps & WLAN_CAPABILITY_QOS) in wnm_get_bss_info() 844 if (bss->caps & WLAN_CAPABILITY_APSD) in wnm_get_bss_info() 846 if (bss->caps & WLAN_CAPABILITY_RADIO_MEASUREMENT) in wnm_get_bss_info() 848 if (wpa_bss_ies_eq(bss, wpa_s->current_bss, WLAN_EID_MOBILITY_DOMAIN)) in wnm_get_bss_info() 850 if (wpa_bss_ies_eq(bss, wpa_s->current_bss, WLAN_EID_HT_CAP)) in wnm_get_bss_info() [all …]
|
| H A D | sme.c | 175 struct wpa_bss *bss; in sme_auth_build_sae_commit() local 261 bss = wpa_bss_get_bssid_latest(wpa_s, bssid); in sme_auth_build_sae_commit() 262 if (!bss) { in sme_auth_build_sae_commit() 266 bss = wpa_bss_get_bssid_latest(wpa_s, bssid); in sme_auth_build_sae_commit() 268 if (bss) { in sme_auth_build_sae_commit() 271 rsnxe = wpa_bss_get_rsnxe(wpa_s, bss, ssid, false); in sme_auth_build_sae_commit() 287 if (bss && is_6ghz_freq(bss->freq) && in sme_auth_build_sae_commit() 636 struct wpa_bss *bss, in sme_check_802_1x_pmksa_caching() argument 647 rsnxe = bss ? wpa_bss_get_ie(bss, WLAN_EID_RSNX) : NULL; in sme_check_802_1x_pmksa_caching() 673 struct wpa_bss *bss, in sme_build_802_1x_auth_request() argument [all …]
|
| H A D | wpa_supplicant.c | 482 struct wpa_bss_tmp_disallowed *bss) in remove_bss_tmp_disallowed_entry() argument 484 eloop_cancel_timeout(wpa_bss_tmp_disallow_timeout, wpa_s, bss); in remove_bss_tmp_disallowed_entry() 485 dl_list_del(&bss->list); in remove_bss_tmp_disallowed_entry() 486 os_free(bss); in remove_bss_tmp_disallowed_entry() 492 struct wpa_bss_tmp_disallowed *bss, *prev; in free_bss_tmp_disallowed() local 494 dl_list_for_each_safe(bss, prev, &wpa_s->bss_tmp_disallowed, in free_bss_tmp_disallowed() 496 remove_bss_tmp_disallowed_entry(wpa_s, bss); in free_bss_tmp_disallowed() 1062 struct wpa_bss *bss; in wpas_verify_ssid_beacon() local 1093 bss = wpa_bss_get_bssid_latest(wpa_s, wpa_s->bssid); in wpas_verify_ssid_beacon() 1094 if (!bss) in wpas_verify_ssid_beacon() [all …]
|
| H A D | mbo.c | 68 static const u8 * wpas_mbo_get_bss_attr(struct wpa_bss *bss, in wpas_mbo_get_bss_attr() argument 73 if (!bss) in wpas_mbo_get_bss_attr() 77 mbo = wpa_bss_get_vendor_ie_beacon(bss, MBO_IE_VENDOR_TYPE); in wpas_mbo_get_bss_attr() 79 mbo = wpa_bss_get_vendor_ie(bss, MBO_IE_VENDOR_TYPE); in wpas_mbo_get_bss_attr() 90 const u8 * wpas_mbo_check_assoc_disallow(struct wpa_bss *bss) in wpas_mbo_check_assoc_disallow() argument 94 assoc_disallow = wpas_mbo_get_bss_attr(bss, MBO_ATTR_ID_ASSOC_DISALLOW, in wpas_mbo_check_assoc_disallow() 95 bss->beacon_newer); in wpas_mbo_check_assoc_disallow() 103 void wpas_mbo_check_pmf(struct wpa_supplicant *wpa_s, struct wpa_bss *bss, in wpas_mbo_check_pmf() argument 110 if (!bss) in wpas_mbo_check_pmf() 112 mbo = wpas_mbo_get_bss_attr(bss, MBO_ATTR_ID_AP_CAPA_IND, false); in wpas_mbo_check_pmf() [all …]
|
| /freebsd/contrib/wpa/src/ap/ |
| H A D | ap_config.c | 28 static void hostapd_config_free_vlan(struct hostapd_bss_config *bss) in hostapd_config_free_vlan() argument 32 vlan = bss->vlan; in hostapd_config_free_vlan() 40 bss->vlan = NULL; in hostapd_config_free_vlan() 48 void hostapd_config_defaults_bss(struct hostapd_bss_config *bss) in hostapd_config_defaults_bss() argument 50 dl_list_init(&bss->anqp_elem); in hostapd_config_defaults_bss() 52 bss->logger_syslog_level = HOSTAPD_LEVEL_INFO; in hostapd_config_defaults_bss() 53 bss->logger_stdout_level = HOSTAPD_LEVEL_INFO; in hostapd_config_defaults_bss() 54 bss->logger_syslog = (unsigned int) -1; in hostapd_config_defaults_bss() 55 bss->logger_stdout = (unsigned int) -1; in hostapd_config_defaults_bss() 58 bss->auth_algs = WPA_AUTH_ALG_OPEN | WPA_AUTH_ALG_SHARED; in hostapd_config_defaults_bss() [all …]
|
| H A D | airtime_policy.c | 141 struct hostapd_data *bss; in update_airtime_weights() local 152 bss = iface->bss[i]; in update_airtime_weights() 153 if (!bss->started || !bss->conf->airtime_weight) in update_airtime_weights() 156 count_backlogged_sta(bss); in update_airtime_weights() 157 if (!bss->num_backlogged_sta) in update_airtime_weights() 160 if (!num_sta_min || bss->num_backlogged_sta < num_sta_min) in update_airtime_weights() 161 num_sta_min = bss->num_backlogged_sta; in update_airtime_weights() 163 num_sta_prod *= bss->num_backlogged_sta; in update_airtime_weights() 164 num_sta_sum += bss->num_backlogged_sta; in update_airtime_weights() 165 wt_sum += bss->conf->airtime_weight; in update_airtime_weights() [all …]
|
| H A D | hostapd.c | 96 return hapd->iface->bss[0]; in hostapd_mbssid_get_tx_bss() 108 if (hapd->iface->bss[i] == hapd) in hostapd_mbssid_get_bss_index() 207 static void hostapd_clear_old_bss(struct hostapd_data *bss) in hostapd_clear_old_bss() argument 210 bss->conf->iface); in hostapd_clear_old_bss() 216 hostapd_flush_old_stations(bss, WLAN_REASON_PREV_AUTH_NOT_VALID); in hostapd_clear_old_bss() 218 hostapd_broadcast_wep_clear(bss); in hostapd_clear_old_bss() 224 radius_client_flush(bss->radius, 0); in hostapd_clear_old_bss() 234 hostapd_clear_old_bss(iface->bss[j]); in hostapd_clear_old() 247 if (os_strcmp(newconf->bss[i]->iface, in hostapd_iface_conf_changed() 248 oldconf->bss[i]->iface) != 0) in hostapd_iface_conf_changed() [all …]
|
| /freebsd/contrib/wpa/hostapd/ |
| H A D | config_file.c | 30 static int hostapd_config_read_vlan_file(struct hostapd_bss_config *bss, in hostapd_config_read_vlan_file() argument 110 vlan->next = bss->vlan; in hostapd_config_read_vlan_file() 111 bss->vlan = vlan; in hostapd_config_read_vlan_file() 612 static int hostapd_parse_das_client(struct hostapd_bss_config *bss, char *val) in hostapd_parse_das_client() argument 622 if (hostapd_parse_ip_addr(val, &bss->radius_das_client_addr)) in hostapd_parse_das_client() 625 os_free(bss->radius_das_shared_secret); in hostapd_parse_das_client() 626 bss->radius_das_shared_secret = (u8 *) os_strdup(secret); in hostapd_parse_das_client() 627 if (bss->radius_das_shared_secret == NULL) in hostapd_parse_das_client() 629 bss->radius_das_shared_secret_len = os_strlen(secret); in hostapd_parse_das_client() 877 struct hostapd_bss_config **all, *bss; in hostapd_config_bss() local [all …]
|
| /freebsd/contrib/wpa/src/drivers/ |
| H A D | driver_nl80211.c | 162 static void wpa_driver_nl80211_deinit(struct i802_bss *bss); 163 static int wpa_driver_nl80211_set_mode_ibss(struct i802_bss *bss, 167 wpa_driver_nl80211_finish_drv_init(struct i802_bss *bss, 171 static int nl80211_send_frame_cmd(struct i802_bss *bss, 177 static int wpa_driver_nl80211_probe_req_report(struct i802_bss *bss, 187 static int nl80211_set_channel(struct i802_bss *bss, 192 static int nl80211_leave_ibss(struct i802_bss *bss, int reset_mode); 194 static int i802_set_iface_flags(struct i802_bss *bss, int up); 196 static void nl80211_remove_links(struct i802_bss *bss); 263 struct i802_bss *bss; in get_bss_ifindex() local [all …]
|
| H A D | driver_nl80211_scan.c | 79 struct i802_bss *bss, struct nl80211_noise_info *info) in nl80211_get_noise_for_scan_results() argument 81 struct wpa_driver_nl80211_data *drv = bss->drv; in nl80211_get_noise_for_scan_results() 85 msg = nl80211_bss_msg(bss, NLM_F_DUMP, NL80211_CMD_GET_SURVEY); in nl80211_get_noise_for_scan_results() 90 static int nl80211_abort_scan(struct i802_bss *bss) in nl80211_abort_scan() argument 94 struct wpa_driver_nl80211_data *drv = bss->drv; in nl80211_abort_scan() 97 msg = nl80211_cmd_msg(bss, 0, NL80211_CMD_ABORT_SCAN); in nl80211_abort_scan() 157 struct i802_bss *bss; in wpa_driver_nl80211_scan_timeout() local 166 for (bss = drv->first_bss; bss; bss = bss->next) { in wpa_driver_nl80211_scan_timeout() 167 if (bss->scan_link) in wpa_driver_nl80211_scan_timeout() 171 if (!bss) { in wpa_driver_nl80211_scan_timeout() [all …]
|
| H A D | driver_nl80211_event.c | 25 nl80211_control_port_frame_tx_status(struct i802_bss *bss, 1281 struct i802_bss *bss; in mlme_event_ch_switch() local 1291 bss = get_bss_ifindex(drv, ifidx); in mlme_event_ch_switch() 1292 if (bss == NULL) { in mlme_event_ch_switch() 1299 finished ? "" : " started", bss->ifname); in mlme_event_ch_switch() 1357 mld_link = nl80211_get_link(bss, in mlme_event_ch_switch() 1364 bss->flink->freq = data.ch_switch.freq; in mlme_event_ch_switch() 1366 bss->flink->bandwidth = channel_width_to_int( in mlme_event_ch_switch() 1379 bss->ctx, in mlme_event_ch_switch() 1389 !nl80211_link_valid(bss->valid_links, data.ch_switch.link_id)) { in mlme_event_ch_switch() [all …]
|
| H A D | driver_nl80211.h | 307 struct nl_msg * nl80211_cmd_msg(struct i802_bss *bss, int flags, uint8_t cmd); 310 struct nl_msg * nl80211_bss_msg(struct i802_bss *bss, int flags, uint8_t cmd); 364 const u8 * nl80211_get_assoc_bssid(struct i802_bss *bss); 373 int nl80211_get_link_signal(struct i802_bss *bss, const u8 *bssid, 375 int nl80211_get_link_noise(struct i802_bss *bss, 377 int nl80211_get_wiphy_index(struct i802_bss *bss); 378 int wpa_driver_nl80211_set_mode(struct i802_bss *bss, 383 struct i802_bss *bss); 399 void nl80211_restore_ap_mode(struct i802_bss *bss); 400 struct i802_link * nl80211_get_link(struct i802_bss *bss, s8 link_id); [all …]
|
| H A D | driver_nl80211_android.c | 42 static int android_priv_cmd(struct i802_bss *bss, const char *cmd) in android_priv_cmd() argument 44 struct wpa_driver_nl80211_data *drv = bss->drv; in android_priv_cmd() 52 os_strlcpy(ifr.ifr_name, bss->ifname, IFNAMSIZ); in android_priv_cmd() 75 int android_pno_start(struct i802_bss *bss, in android_pno_start() argument 78 struct wpa_driver_nl80211_data *drv = bss->drv; in android_pno_start() 125 os_strlcpy(ifr.ifr_name, bss->ifname, IFNAMSIZ); in android_pno_start() 143 return android_priv_cmd(bss, "PNOFORCE 1"); in android_pno_start() 147 int android_pno_stop(struct i802_bss *bss) in android_pno_stop() argument 149 return android_priv_cmd(bss, "PNOFORCE 0"); in android_pno_stop()
|
| /freebsd/contrib/wpa/src/common/ |
| H A D | hw_features_common.c | 179 void get_pri_sec_chan(struct wpa_scan_res *bss, int *pri_chan, int *sec_chan) in get_pri_sec_chan() argument 186 if (ieee802_11_parse_elems((u8 *) (bss + 1), bss->ie_len, &elems, 0) != in get_pri_sec_chan() 221 struct wpa_scan_res *bss = scan_res->res[i]; in check_40mhz_5g() local 222 if (bss->freq == pri_chan->freq) in check_40mhz_5g() 224 else if (bss->freq == sec_chan->freq) in check_40mhz_5g() 240 struct wpa_scan_res *bss = scan_res->res[i]; in check_40mhz_5g() local 241 get_pri_sec_chan(bss, &bss_pri_chan, &bss_sec_chan); in check_40mhz_5g() 250 struct wpa_scan_res *bss = scan_res->res[i]; in check_40mhz_5g() local 251 get_pri_sec_chan(bss, &bss_pri_chan, &bss_sec_chan); in check_40mhz_5g() 257 MAC2STR(bss->bssid)); in check_40mhz_5g() [all …]
|
| /freebsd/sys/contrib/dev/iwi/ |
| H A D | Makefile | 4 ALL= ipw2200-bss.fw.uu ipw2200-ibss.fw.uu ipw2200-sniffer.fw.uu 8 ipw2200-bss.fw.uu: ipw2200-bss.fw LICENSE 11 uuencode ipw2200-bss.fw ipw2200-bss.fw) > ${.TARGET}
|
| /freebsd/sys/conf/ |
| H A D | ldscript.i386 | 39 .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } 40 .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } 147 .bss : 151 *(.bss .bss.* .gnu.linkonce.b.*) 153 /* Align here to ensure that the .bss section occupies space up to 154 _end. Align after .bss to ensure correct alignment even if the 155 .bss section disappears because there are no input sections. 156 FIXME: Why do we need it? When there is no .bss section, we don't
|