# Python38-3.8.13 update problem



## Crotalus (Mar 27, 2022)

Trying to update python38-3.8.13 from 3.8.12_1. I can't seem to find the solution to why the update fails. Here is the error messages.

```
--- libpython3.8.so ---
/usr/local/bin/ld: /usr/bin/../lib/LLVMgold.so: error loading plugin: Cannot open "/usr/bin/../lib/LLVMgold.so"
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** [libpython3.8.so] Error code 1

make[2]: stopped in /usr/ports/lang/python38/work/Python-3.8.13
1 error
```
Searching for the file I find some of them in a different place as follows;

```
root@Phaedra:/ # find / -name LLVMgold.so
/usr/local/llvm70/lib/LLVMgold.so
/usr/local/llvm80/lib/LLVMgold.so
/usr/local/llvm12/lib/LLVMgold.so
/usr/local/llvm13/lib/LLVMgold.so
root@Phaedra:/ #
```

I did find find an old bug using llvm12. I deleted it with the same results.
I found some old problems with LINUX that used different file structures. 
Does anybody know what I am doing wrong?


----------



## Deleted member 70435 (Mar 27, 2022)

I would recommend you upgrade, your port. with portmaster, for it to solve for you some loose ends

or use something you know about, such as a synth or something, good before you create a thread, provide more information about the libraries, when you installed llvm12, and how it occurred. with other applications you have compiled or installed by pkg or ports?


----------



## Alain De Vos (Mar 27, 2022)

At least provide the command you ran and your configuration, as "Trying to update" can be anything.


----------



## Crotalus (Mar 27, 2022)

I use `portmaster` all the time and I also used `cd /usr/ports/lang/python38/ && make install clean`. As for llvm12 the problem I found was dated 2015. I don't know when llvm12 appeared as various versions appear out of the blue.

If I try `pkg install python38` I get 
	
	



```
New packages to be INSTALLED:
        db5: 5.3.28_8

Installed packages to be REINSTALLED:
        python38-3.8.12_1 (direct dependency changed: mpdecimal)

Number of packages to be removed: 109
Number of packages to be installed: 1
Number of packages to be reinstalled: 1

The operation will free 489 MiB.
29 MiB to be downloaded.

Proceed with this action? [y/N]: n
```
This is not acceptable as it wants to remove 109 packages which I did not show and it wants to install the the existing version of python38 not the newest version. Also db5 is DEPRECATED.


----------



## Alain De Vos (Mar 27, 2022)

Verify you updated the contents of /usr/ports to the last version of quarterly or latest branch.

You can explicitly specify the python version you want in /etc/make.conf
For instance I use:

```
DEFAULT_VERSIONS+=python3=3.9
DEFAULT_VERSIONS+=python=3.9
```

As for the llvm version I use:

```
DEFAULT_VERSIONS+=llvm=13
```


----------



## T-Daemon (Mar 27, 2022)

Crotalus said:


> I also used `cd /usr/ports/lang/python38/ && make install clean`.


lang/python38 3.8.13 builds and installs just fine with the default options:


```
# pkg info python38
python38-3.8.13
Name           : python38
Version        : 3.8.13
Installed on   : Sun Mar 27 23:30:44 2022 +02
Origin         : lang/python38
Architecture   : FreeBSD:13:amd64
Prefix         : /usr/local
Categories     : python lang
Licenses       : PSFL
Maintainer     : python@FreeBSD.org
WWW            : https://www.python.org/
Comment        : Interpreted object-oriented programming language
Options        :
    DEBUG          : off
    FNV            : off
    IPV6           : on
    LIBMPDEC       : on
    LTO            : on
    NLS            : on
    PYMALLOC       : on
    SIPHASH        : off
Shared Libs required:
    libintl.so.8
    libreadline.so.8
    libmpdec.so.3
    libffi.so.7
Shared Libs provided:
    libpython3.8.so.1.0
Annotations    :
    FreeBSD_version: 1300139
    cpe            : cpe:2.3:a:python:python:3.8.13:::::freebsd13:x64
Flat size      : 128MiB
Description    :
Python is an interpreted object-oriented programming language, and is
often compared to Tcl, Perl or Scheme.

WWW: https://www.python.org/
```

Have you enabled or disabled configuration options? If not get a fresh ports tree and try again.


----------



## trev (Mar 27, 2022)

No problem with ports-mgmt/portupgrade yesterday:


```
Mar 27 10:41:55 shadow pkg[45957]: python38-3.8.12_2 deinstalled
Mar 27 10:42:00 shadow pkg-static[46083]: python38-3.8.13 installed
```


----------



## richardtoohey2 (Mar 27, 2022)

I use ports/portsnap/portmaster and have just done a round of upgrades (including Python 3.8) - no issues here.

To get rid of db5 I had to tinker with the config for apr1.


----------



## grahamperrin@ (Mar 28, 2022)

Crotalus said:


> Does anybody know



Which version of FreeBSD, exactly? 

`freebsd-version -kru && uname -aKU`

Also `pkg -vv | grep -e url -e enabled`


----------



## Crotalus (Mar 28, 2022)

Here is my environment;
	
	



```
---<<BOOT>>---
Copyright (c) 1992-2021 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 12.3-RELEASE-p1 GENERIC amd64
FreeBSD clang version 10.0.1 (git@github.com:llvm/llvm-project.git llvmorg-10.0.1-0-gef32c611aa2)
VT(vga): resolution 640x480
CPU: AMD FX(tm)-8350 Eight-Core Processor            (4018.40-MHz K8-class CPU)
  Origin="AuthenticAMD"  Id=0x600f20  Family=0x15  Model=0x2  Stepping=0
  Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT>
  Features2=0x3e98320b<SSE3,PCLMULQDQ,MON,SSSE3,FMA,CX16,SSE4.1,SSE4.2,POPCNT,AESNI,XSAVE,OSXSAVE,AVX,F16C>
  AMD Features=0x2e500800<SYSCALL,NX,MMX+,FFXSR,Page1GB,RDTSCP,LM>
  AMD Features2=0x1ebbfff<LAHF,CMP,SVM,ExtAPIC,CR8,ABM,SSE4A,MAS,Prefetch,OSVW,IBS,XOP,SKINIT,WDT,LWP,FMA4,TCE,NodeId,TBM,Topology,PCXC,PNXC>
  Structured Extended Features=0x8<BMI1>
  SVM: NP,NRIP,VClean,AFlush,DAssist,NAsids=65536
  TSC: P-state invariant, performance statistics
real memory  = 25769803776 (24576 MB)
avail memory = 24941760512 (23786 MB)

root@Phaedra:/ # pkg -vv | grep -e url -e enabled
    url             : "pkg+http://pkg.FreeBSD.org/FreeBSD:12:amd64/quarterly",
    enabled         : yes,
root@Phaedra:/ #
```
This what I run to check for update;`/usr/sbin/portsnap fetch update && \
/usr/local/sbin/portmaster -L --index-only | egrep '(ew|ort) version|total install '`

I set llvm13 as the default and it had no difference as to the result.  I have no idea what version is being used.


----------



## grahamperrin@ (Mar 28, 2022)

Thanks. If your ports collection is latest, is the mix with quarterly (packages) intentional? 

When you can, update the OS from patch level 1, to 4.


----------



## Crotalus (Mar 28, 2022)

I updated the OS to the latest patch level and have the same error. I did not know about the quarterly updates. It had to be something with the original install several yeas ago. I do a manual check for update about twice a month and install anything new that pops up.


----------



## chrbr (Mar 28, 2022)

As far as I remember the default repository has been "latest" in FreeBSD-9.X times or so. This default has been changed at some point in time to "quaterly". The aim has been to reduce the number of updates for the default setup. Within one quarter the packages receive security updates but do not follow each version bump.


----------



## Crotalus (Mar 30, 2022)

I did this `cd /usr/ports/lang/python39/ && make install clean` and it installed without any problems. I can not get version 38 or 37 to compile and install. They get the same error of can not open a file that does not exist.

Question; If a default version is not specified what version is used when execution of a program is done?

Ignore the above. I installed python39 on a different machine by mistake. 
python39 gets the same error when I attempt on the problem machine.

```
/usr/local/bin/ld: /usr/bin/../lib/LLVMgold.so: error loading plugin: Cannot open "/usr/bin/../lib/LLVMgold.so"
```


----------



## SirDice (Mar 30, 2022)

-RELEASE versions are set to use quarterly packages by default. -STABLE and -CURRENT are set to latest by default.


----------



## Crotalus (Mar 30, 2022)

See above addition to my post as version 39 was installed on a different machine.


----------



## Crotalus (Apr 16, 2022)

I am at a lose. I believe that it is a linker problem that occurred when I updated my system to the most current version. I am now on 
	
	



```
FreeBSD 12.3-RELEASE-p5 GENERIC amd64
FreeBSD clang version 10.0.1 (git@github.com:llvm/llvm-project.git llvmorg-10.0.1-0-gef32c611aa2)
```
I seem to have a problem with the python3x and the linker that it is using. I am able to install the package for python27 without any problem.
	
	



```
This port is deprecated; you may wish to reconsider installing it:

EOLed upstream.

It is scheduled to be removed on or after 2020-12-31.

===>>> Done displaying pkg-message files

===>>> Re-installation of python27-2.7.18_1 complete
```
There appears to be several link programs that can be used
	
	



```
-r-xr-xr-x    4 root  wheel   8025984 Apr  8 19:45 ld
-r-xr-xr-x    4 root  wheel   8025984 Apr  8 19:45 ld.bfd
-r-xr-xr-x    2 root  wheel   4621512 Apr  8 19:45 ld.gold
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 ld.lld13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 ld.lld90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 ld64.lld.darwinnew13
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 ld64.lld.darwinold13
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 ld64.lld13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 ld64.lld90
```
The problem is with not finding a file
	
	



```
/usr/local/bin/x86_64-unknown-freebsd12.3-ld: /usr/bin/../lib/LLVMgold.so: error loading plugin: Cannot open "/usr/bin/../lib/LLVMgold.so"
cc: error: linker command failed with exit code 1 (use -v to see invocation)
*** [libpython3.7m.so] Error code 1

make[2]: stopped in /usr/ports/lang/python37/work/Python-3.7.13
```
It appears that the ld.gold is the one being used.

From running `dmesg` I see that clang version 10.0.1 is used. Here is the list of clang

```
-rwxr-xr-x    4 root  wheel   1216200 Apr 29  2021 c++10
-rwxr-xr-x    4 root  wheel   1150640 Jan 22 09:04 c++9
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang++13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang++90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-apply-replacements13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang-apply-replacements90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-change-namespace13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang-change-namespace90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-check13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang-check90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-cpp13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang-cpp90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-doc13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang-doc90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-extdef-mapping13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang-extdef-mapping90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-format13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang-format90
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang-import-test90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-include-fixer13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang-include-fixer90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-move13
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-offload-bundler13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang-offload-bundler90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-offload-wrapper13
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-query13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang-query90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-rename13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang-rename90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-reorder-fields13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang-reorder-fields90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-repl13
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-scan-deps13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang-scan-deps90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang-tidy13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang-tidy90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clang13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clang90
-r-xr-xr-x  122 root  wheel       285 Apr 15 20:21 clangd13
-r-xr-xr-x   86 root  wheel       285 Apr 15 11:56 clangd90
```
I have no idea how to fix this or even work around it.
Does anybody have any ideas?


----------



## grahamperrin@ (Apr 17, 2022)

`pkg info -x llvm`


----------



## Crotalus (Apr 17, 2022)

I added llvm80 since the posts with the same result.

```
root@Phaedra:/ # pkg info -x llvm
llvm13-13.0.1_2
llvm80-8.0.1_7
llvm90-9.0.1_6
spirv-llvm-translator-llvm12-12.0.0
root@Phaedra:/ #
```
What am I looking at here? I did the pkg info with out the "x" before. Do I need llvm12?


----------



## grahamperrin@ (Apr 17, 2022)

If things have got in a mess, for whatever reason, I'd be tempted to create, activate then boot a new boot environment; then force an upgrade of all packages: 

`pkg upgrade -f`


----------

