int err = 0, i;
 
        d = btf_dump__new(btf, btf_dump_printf, NULL, NULL);
-       if (IS_ERR(d))
-               return PTR_ERR(d);
+       err = libbpf_get_error(d);
+       if (err)
+               return err;
 
        printf("#ifndef __VMLINUX_H__\n");
        printf("#define __VMLINUX_H__\n");
                }
 
                btf = btf__parse_split(*argv, base ?: base_btf);
-               if (IS_ERR(btf)) {
-                       err = -PTR_ERR(btf);
+               err = libbpf_get_error(btf);
+               if (err) {
                        btf = NULL;
                        p_err("failed to load BTF from %s: %s",
                              *argv, strerror(err));
 
        int i, err = 0;
 
        d = btf_dump__new(btf, codegen_btf_dump_printf, NULL, NULL);
-       if (IS_ERR(d))
-               return PTR_ERR(d);
+       err = libbpf_get_error(d);
+       if (err)
+               return err;
 
        bpf_object__for_each_map(map, obj) {
                /* only generate definitions for memory-mapped internal maps */
                get_obj_name(obj_name, file);
        opts.object_name = obj_name;
        obj = bpf_object__open_mem(obj_data, file_sz, &opts);
-       if (IS_ERR(obj)) {
+       err = libbpf_get_error(obj);
+       if (err) {
                char err_buf[256];
 
-               libbpf_strerror(PTR_ERR(obj), err_buf, sizeof(err_buf));
+               libbpf_strerror(err, err_buf, sizeof(err_buf));
                p_err("failed to open BPF object file: %s", err_buf);
                obj = NULL;
                goto out;
 
        }
 
        obj = bpf_object__open(objfile);
-       if (IS_ERR(obj)) {
+       err = libbpf_get_error(obj);
+       if (err) {
                p_err("can't open objfile %s", objfile);
                goto close_map_fd;
        }
        }
 
        link = bpf_program__attach_iter(prog, &iter_opts);
-       if (IS_ERR(link)) {
-               err = PTR_ERR(link);
+       err = libbpf_get_error(link);
+       if (err) {
                p_err("attach_iter failed for program %s",
                      bpf_program__name(prog));
                goto close_obj;
 
        if (info->btf_vmlinux_value_type_id) {
                if (!btf_vmlinux) {
                        btf_vmlinux = libbpf_find_kernel_btf();
-                       if (IS_ERR(btf_vmlinux))
+                       if (libbpf_get_error(btf_vmlinux))
                                p_err("failed to get kernel btf");
                }
                return btf_vmlinux;
 
 static void free_map_kv_btf(struct btf *btf)
 {
-       if (!IS_ERR(btf) && btf != btf_vmlinux)
+       if (!libbpf_get_error(btf) && btf != btf_vmlinux)
                btf__free(btf);
 }
 
 static void free_btf_vmlinux(void)
 {
-       if (!IS_ERR(btf_vmlinux))
+       if (!libbpf_get_error(btf_vmlinux))
                btf__free(btf_vmlinux);
 }
 
 
        if (wtr) {
                btf = get_map_kv_btf(info);
-               if (IS_ERR(btf)) {
-                       err = PTR_ERR(btf);
+               err = libbpf_get_error(btf);
+               if (err) {
                        goto exit_free;
                }
 
 
                return btf_vmlinux;
 
        btf_vmlinux = libbpf_find_kernel_btf();
-       if (IS_ERR(btf_vmlinux))
+       if (libbpf_get_error(btf_vmlinux))
                p_err("struct_ops requires kernel CONFIG_DEBUG_INFO_BTF=y");
 
        return btf_vmlinux;
        const char *st_ops_name;
 
        kern_btf = get_btf_vmlinux();
-       if (IS_ERR(kern_btf))
+       if (libbpf_get_error(kern_btf))
                return "<btf_vmlinux_not_found>";
 
        t = btf__type_by_id(kern_btf, info->btf_vmlinux_value_type_id);
                return map_info_type_id;
 
        kern_btf = get_btf_vmlinux();
-       if (IS_ERR(kern_btf)) {
+       if (libbpf_get_error(kern_btf)) {
                map_info_type_id = PTR_ERR(kern_btf);
                return map_info_type_id;
        }
        }
 
        kern_btf = get_btf_vmlinux();
-       if (IS_ERR(kern_btf))
+       if (libbpf_get_error(kern_btf))
                return -1;
 
        if (!json_output) {
        file = GET_ARG();
 
        obj = bpf_object__open(file);
-       if (IS_ERR_OR_NULL(obj))
+       if (libbpf_get_error(obj))
                return -1;
 
        set_max_rlimit();
                        continue;
 
                link = bpf_map__attach_struct_ops(map);
-               if (IS_ERR(link)) {
+               if (libbpf_get_error(link)) {
                        p_err("can't register struct_ops %s: %s",
                              bpf_map__name(map),
                              strerror(-PTR_ERR(link)));
 
        err = cmd_select(cmds, argc, argv, do_help);
 
-       if (!IS_ERR(btf_vmlinux))
+       if (!libbpf_get_error(btf_vmlinux))
                btf__free(btf_vmlinux);
 
        return err;